Se alguem conseguir pode postar ai...pq esse sim eh o maior comedor de banda ja inventado...nao tem link que resita ao tal youtube...
Versão Imprimível
Se alguem conseguir pode postar ai...pq esse sim eh o maior comedor de banda ja inventado...nao tem link que resita ao tal youtube...
Cara, estou decidido mesmo a bloquear, estarei analizando o código da página do vídeo para ver o que posso fazer, talvez bloqueie por arquivo flv ou mime type.
No momento estou postando em outro fórum uma solução em php, mas ninguém ainda conseguiu.
O que eu queria é que se o usuário já estiver acessando esta página em questão no meu servidor local, ele bloqueasse.
Iria redirecionar o youtube para esta página.
Já está quase pronto o código em php + javascript.
Conteúdo do redirecionador.php
Conteúdo do deletador.phpCódigo PHP:
<html>
<?php
//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 = '$ip'");
$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 ('$ip')") or die("Database INSERT Error");
echo ("
<head>
<Script Language=JavaScript>
<!-- Hide
function rusure() {
window.open('deletador.php','page','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100');
}
// end hide -->
</script>
</head>");
}
?>
<body onUnload="rusure();">
</body>
</html>
Código PHP:
<?php
//Efetua a conexão
mysql_connect("localhost","***-user-****","****-senha-****");
mysql_select_db("youtube");
//Pega o ip
$ip = $_SERVER['REMOTE_ADDR'];
//Deleta os ips
mysql_query("DELETE FROM `useronline` WHERE CONVERT(`useronline`.`ip` USING utf8) = '$ip' LIMIT 1") or die(mysql_error());
//nao precisa.
//$result=mysql_query("SELECT DISTINCT ip FROM useronline") or die("mysql_errno(");
?>
Toda vez que o usuario acessar o redirecionador.php, ele verifica se o usuário já está ativo, se estiver, ele avisa falando que já está assistindo.
Se o usuário (ip) não constar no DB, ele registra o usuário no DB, e insere um código javascript na página registrando o evento unload, que é o fechar da página, que executa o deletador.php, que deleta ip do usuário do DB quando a página for fechada.
Agora só falta inserir os códigos para trabalhar com youtube.
Vou ter que usar o url_rewriter, eu acho.
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.
A partir daí, fui desenvolver o redirecionador em php. Esse é o redirecionador: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` --
O arquivo deletador3.phpCó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>
______________________________________________________________________________________________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
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.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] } }
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.