Consegui, pelo menos só no site do youtube, os vídeos incorporados não funcionam (e.x. Orkut).
Aí vai:
Criei um DB no Mysql chamado youtube, com a tabela de nome useronline, com o campo ip vachar(40) e nulo não.
Código :
-- phpMyAdmin SQL Dump
-- version 2.11.7
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: Set 28, 2008 as 10:26 AM
-- Versão do Servidor: 5.0.51
-- Versão do PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Banco de Dados: `youtube`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `useronline`
--
CREATE TABLE IF NOT EXISTS `useronline` (
`ip` varchar(40) NOT NULL,
KEY `ip` (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Extraindo dados da tabela `useronline`
--
A partir daí, fui desenvolver o redirecionador em php. Esse é o redirecionador:
Código PHP:
<html>
<?php
$body = '<body onUnload="rusure();">';
$body2 = "</body>";
$meuip = $_GET["cip"];
$frutas = $_GET["url"];
$parte = explode("watch?v=", $frutas);
//Efetua a conexão
mysql_connect("localhost","***-user-***","***-senha-***");
mysql_select_db("youtube");
//Pega o ip
//$ip = $_SERVER['REMOTE_ADDR'];
//Verifica se o ip do usuário já se encontra
$verif = mysql_query ("SELECT ip FROM useronline WHERE ip = '$meuip'");
$evo = mysql_num_rows($verif);
//Se for encontrado, fala que o usuario ja esta ativo
if ($evo > "0"){
echo "Usuario ja assistindo youtube";
//Caso não sejá encontrado ele insere o ip a url e o tempo
} else {
mysql_query("INSERT INTO useronline VALUES ('$meuip')") or die(mysql_error());
echo ("
<head>
<Script Language=JavaScript>
<!-- Hide
function rusure() {
window.open('http://192.168.0.1/deletador3.php?cip=$meuip','page','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100');
}
// end hide -->
</script>
</head> $body <object width=100% height=100%><param name=movie value=http://www.youtube.com/v/$parte[1]></param><param name=allowFullScreen value=true></param><embed src=http://www.youtube.com/v/$parte[1] type=application/x-shockwave-flash allowFullScreen=true width=100% height=100%></embed></object> $body2");
}
?>
</html>
O arquivo deletador3.php
Código PHP:
<?php
//Efetua a conexão
mysql_connect("localhost","***-user-***","***-senha-***");
mysql_select_db("youtube");
//Pega o ip
//$ip = $_SERVER['REMOTE_ADDR'];
$meuip = $_GET["cip"];
//DeLeta os ips
mysql_query("DELETE FROM `useronline` WHERE CONVERT(`useronline`.`ip` USING utf8) = '$meuip' LIMIT 1") or die(mysql_error());
//nao precisa.
//$result=mysql_query("SELECT DISTINCT ip FROM useronline") or die("mysql_errno(");
?>
______________________________________________________________________________________________
O funcionamento:
Bom, usei o squidGuard para bloquear o tráfego das url
youtube.com/watch?v=
br.youtube.com/watch?v=
de.youtube.com/watch?v=
uk.youtube.com/watch?v=
E redirecionar
Código :
dest youtube {
urllist youblock/urls
}
acl {
default {
pass !youtube
redirect http://192.168.0.1/redirector3.php?[B]cip=%a&url=%p[/B]
}
}
Atenção especial para os cip=%a&url=%p, que serão responsáveis de passar o ip do usuário e a url do youtube para o redirecionador.
O redirector3.php pega o ip e salva na variavel $meuip que será usada para verificar se o usuário já está ou não acessando algum vídeo do youtube.
Aí, quando o usuário tentar acessar um vídeo do youtube, srá redirecionado para esta página, que coletará os dados do ip e da url, verificará se já está no DB, se estiver mostra o aviso que já está assistindo um vídeo, se não estiver mostra o vídeo no modo inserido na página, o que economiza mais banda de internet ainda.
Aí, quando o usuário fechar a página, abrirá um popup que deletará o ip dele, para poder assistir outros vídeos. Quem puder ajudar, pois ainda não descobri um modo da página fechar sozinha quando o script de deletação terminar.
Nota: Não funciona com vídeos inseridos nas páginas, muito menos com os do orkut. Pelo menos aqui não funcionou.
Nota 2: Será necessário liberar o bloqueador de popups para os sites do youtube inseridos na lista do squidGuard.