Lucianogf, obrigado pela atenção
Já descobri o erro: como uso o freebsd alterei as linhas /usr/bin/wget para /usr/bin/fetch.
Gilberto
No /var/log/squid/cache.log, estão aparecendo esses erros. Quem teve esses erros e como resolveu?
2008/09/08 10:59:34| helperHandleRead: unexpected reply on channel 0 from url_rewriter #4 ''
2008/09/08 10:59:34| helperHandleRead: unexpected reply on channel 0 from url_rewriter #4 ''
Gilberto
isso acontece porque a url de entrada e de saida são as mesmas! não sendo esperado isso pelo squid(gerando um mini loop). por gentileza se puder pesquisar á respeito disso e conseguir eliminar! ficaremos muito gratos!
aff, até que enfim consegui ler todos os posts.
alow Luiz, como dito pra vc na Viva o Linux, fiz um script para o Youtube, baseado no seu, apenas em shell-script.
fiz o ajuste do sed para alterar o player.
segue o script
OBS: Utilizei seu mesmo player, mas estou quardando os videos todos na raiz.Código :#!/bin/sh # nome: rw_youtube.sh ############################################################# # Script de URL Rewrite para cache do Youtube # # Desenvolvido por Wenderson Souza ([email protected]) # # Criado em 16 de setembro de 2008 as 01:10 hs # # Modificado em 16 de setembro de 2008 as 01:30 hs # ############################################################# # Creditos # # Script com adaptacoes do "Script de cache do youtube # # parte 2 desenvolvido por Luiz Biazus e Andre Chiodi # # em: http://www.vivaolinux.com.br/artigo/Cache-do-Youtube- # # efetivo-no-Linux # ############################################################# # Licenca GNU # # Este script pode ser utilizado, modificado e distribuido # # livremente, desde que seja mantida referencia ao(s) de- # # senvolvedores referenciados acima. # ############################################################# # # configuracoes # # mascara de criacao dos arquivos umask 022 # destino dos arquivos destino_video=/disco2/YOUTUBE # local dos videos no seu servidor servidor_http=http://www.seudominio.com.br/YOUTUBE/ # ativacao do log (0-desativado 1-ativado) log_ativado=1 log_destino=/tmp/rw_youtube.log # # inicio do script # deste ponto em diante vc nao deve alterar nada # while read p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 do # # leitura dos parametros # if [ "$log_ativado" = "1" ]; then echo "" >> $log_destino echo "----------------------- INICIO" >> $log_destino echo "url: $p1" >> $log_destino # echo "p2: $p2" >> $log_destino # echo "p3: $p3" >> $log_destino # echo "p4: $p4" >> $log_destino # echo "p5: $p5" >> $log_destino # echo "p6: $p6" >> $log_destino # echo "p7: $p7" >> $log_destino # echo "p8: $p8" >> $log_destino # echo "p9: $p9" >> $log_destino # echo "p10: $p10" >> $log_destino fi # # validacoes # # verificar se foi passada alguma url if [ -z "$p1" ]; then if [ "$log_ativado" = "1" ]; then echo " Nenhuma URL passada como parametro!" >> $log_destino echo "----------------------- FIM" >> $log_destino fi exit 1 fi # verificar se foi passada uma url de video do youtube if [ `echo $p1 | grep youtube | grep watch | wc -l` -lt 1 ]; then if [ "$log_ativado" = "1" ]; then echo " A URL nao ' de um video do youtubbe!" >> $log_destino echo "----------------------- FIM" >> $log_destino fi exit 1 fi # # tratar url # # pegar dominio dominio=`echo $p1 | cut -d/ -f1,2,3` # pegar codigo do video arquivo1=`echo $p1 | cut -d/ -f4 | cut -d= -f2` # pegar nome real do arquivo arquivo2=`wget -qO - $p1 | grep -oE 'video_id=.*&t=[^\"&]*' | head -1` # # redirecionar ou baixar os arquivos # # se os dois arquivos ja existirem - retornar do cache if [ -e "$destino_video/$arquivo1.html" ] && [ -e "$destino_video/$arquivo1.flv" ]; then if [ "$log_ativado" = "1" ]; then echo "Aviso: Ja' esta em cache!" >> $log_destino echo "Redirecionado para $servidor_http/$arquivo1.html!" >> $log_destino fi echo "302:$servidor_http/$arquivo1.html" else # caso nao exista um dos dois, retornar o link original if [ "$log_ativado" = "1" ]; then echo "Aviso: Ainda nao esta em cache!" >> $log_destino echo "Abrindo URL original!" >> $log_destino fi echo $p1 # se nao existir o html - baixa-lo if [ ! -e "$destino_video/$arquivo1.html" ]; then if [ "$log_ativado" = "1" ]; then echo "Aviso: Baixando arquivo $p1!" >> $log_destino fi wget -O "$destino_video/$arquivo1.html" "$p1" && # trocar os players # obs: O sed versao 4 ou superior faz a alteracao no proprio arquivo (-i) sed -i '/<div id="watch-this-vid">/,/<div id="watch-ratings-views">/c <div id="watch-this-vid"><div id="watch-player-div" class="flash-player"><embed type="application/x-shockwave-flash" src="'$servidor_http'/PLAYER/player.swf" style="" id="bannerswf" name="bannerswf" bgcolor="#ffffff" quality="high" allowfullscreen="true" allowscriptaccess="always" wmode="opaque" flashvars="file='$servidor_http'/'$arquivo1.flv'&fullscreen=true&autostart=true&" width="480" height="350"></div><div id="watch-main-area" > <div id="watch-ratings-views">' "$destino_video/$arquivo1.html" && chmod +rx "$destino_video/$arquivo1.html" fi # se nao existir o flv - baixa-lo if [ ! -e "$destino_video/$arquivo1.flv" ]; then if [ "$log_ativado" = "1" ]; then echo "Aviso: Baixando arquivo ${dominio}/get_video?${arquivo2}!" >> $log_destino fi wget -O "$destino_video/$arquivo1.flv" "${dominio}/get_video?${arquivo2}" && chmod +rx "$destino_video/$arquivo1.flv" fi fi if [ "$log_ativado" = "1" ]; then echo "----------------------- FIM" >> $log_destino fi done
Fiz em um arquivo apenas, creio que ficará mais leve.
Quando eu (e outros do forum) colocarem em producao com muitos usuarios veremos como fica a performance.
Depois podemos mudar para uma linguagem de nivel mais baixo para poder ganhar na performance, quem sabe em C. risos.
É isso ai.
Boa tarde pessoal, já li e re-li esse topico acho q umas 20 vezes, gostaria de saber se nao for de mais, é claro, algum colega q teve sucesso no assunto acima citado, favor postar o script completo. Explico, como fui criticado outra vez aqui no post, q eu deveria pesquisar mais, bla bla bla. Bom não é por preguiça, é q nao entendo patavinas de programação. Por isso q insisto q algum colega poste o script completo, pois os teste q fiz ao pedaço deu erros variados. estou nessa labuta ao menos 4 meses. E toda vez q dá um erro diferente um colega pergunta uma coisa e respondem outra. Peço a ajuda devcs, pois assim diminuiremos o tamanho post e ficará mais objetivo.
Desde já agradeço a compreensão de todos.
Abraço
Aqui amigo um passo a passo pra vc Linux: Cache do Youtube efetivo no Linux [Artigo]
Falow
Clecio
é isso ai wenderson!!
assim que tiver um tempo sobrando irei estudar suas modificações!
abraços!
paulo! que distro você usa e que erros ocorrem?
cara, estou testando o script aqui e detectei um problema, nao sei se ocorre com o seu.
na primeira vez que vejo o video, ele faz todo o processo para baixar o video direitinho, cria o html, o sed esta substituindo o player.
a pagina original carrega, enquanto está baixando, mas o video do site original, so começa a carregar depois que o download do video para o hd termina.
isso acontece com o seu script?
se nao acontece, vou ter que estudar uma solução para isso.
grato,
não acontece com o meu não amigo!
o meu apenas tem um controle que verifica se o download acabou ou não
caso não acabou manda pra url original... caso acabou manda pro cache!
Abraços
á entrada vai ser:
URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup
[<SP> kvpairs] <NL>
a saida:
And the rewriter may return a rewritten URL. The other components of
the request line does not need to be returned (ignored if they are).
ou seja só a url o resto nao precisa
o maximo que vc pode fazer é isso:
The rewriter can also indicate that a client-side redirect should
be performed to the new URL. This is done by prefixing the returned
URL with "301:" (moved permanently) or 302: (moved temporarily).
adicionando 301: ou 302: na frente da url tipo 302:youtube.com.br
mais não vi nenhuma utilidade nisso :P
ok ok,
entao meu script está certo retornando apenas a url (original) ou a url com 302:url_local. (apesar de nao ver utilidade tb, mas aparece no log como REDIRECT)
e eu retorno a URL original antes mesmo de iniciar o download, ai ele abre normal o site. so que o vídeo na carrega normalmente.
tirei a url_rewrite pra testar e esta funcionando normal.
vou tentar conseguir um tempo pra fazer mais testes hoje, pois o negocio aqui está "apurado".
Opa...
deixo aqui o meu reconhecimento de que foi uma excelente ideia
que vai ajudar em muito meu caso e dos demais.
Tive uma certa dificuldade para faze-lo funcionar
Baixava o arquivo mais quando ia assistir o video novamente
ele nao puxado do arquivo já baixado, olhei varias respostas aqui
e nao achei nenhuma solucao para o caso, então tentei revisar
o script e ver se eu fiz algo de errado, e descobri no arquivo
biazuspart2.sh quase nas suas ultimas linhas o seguinte comando
chown proxyroxy $diretorio/$arquivoachar -R &&
então vi que as permisões estava para um usuario que nao tenho em meu servidor
pois utilizo outro usuario. Então apenas troque nessa linha para o usuario certo
e resolveu meu problema, acho que deve ter mais gente com essa dificuldade
e outra questão tambem após a mudança do usuario que tive que fazer
é deletar dentro de cada diretorio aonde existe o video um arquivo
com nome 2
Comando para deletar o arquivo de todos os diretorios de videos:
find diretorio_principal_youtube -type f -name "2" | xargs rm
Feito isto funciona perfeito. Basta seguir o tutorial do vivaolinux
Abraço a todos.
Ola Arium, bom tentei no Slack12 e no Slamd64, mas como sou iniicante me perdi nas configurações, pois nao diferentes, entai decidi usar o Ubuntu como é a distro q mostra no Vivaolinux, só q deu erro diferentes...
1- * Starting web server apache2 [Wed Sep 24 15:35:25 2008] [error]
VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Wed Sep 24 15:35:25 2008] [warn] NameVirtualHost *:80 has no VirtualHosts [ OK ]
2- entrada:
YOUTUBE AINDA ESTA BAIXANDO VIDEO watch__v=KONfHAXogks nao redirecionado
entrada: http://br.youtube.com/get_video?vide...cBxHzTMY5sGSYE
nao redirecionado
entrada: http://br.youtube.com/crossdomain.xml
nao redirecionado
entrada: http://br.youtube.com/xlb/pt-br.xlb
nao redirecionado
E ai Galera peguei o bonde andando
e no que posso ajudar
eu testei a duvida dos cache
eu tenho 3 scsi de 76 gb 15mil rpm ultra 320mb
fiz em raid0 e em 3 cache em 3 disck e em raid0 ficou mais rapido
obvio que fica mais rapido raid
é uma coisa logica + HD +IO +IO + SPEED
quando eu comentei em um outro post aqui (até nem sei se nao foi nesse acho que foi) sobre o raid vieram me fala bobagem que tinham discutido e nao dava certo... não aumentava performance
fazer oq! :P
pelomenos agora vc sabe ahhahahaha
valeu pelo feedback
E ai Arium blz ....
em que ponto esta o url_rewrite ??
orkut ok
avast ok
avg ok