Adicionado, mas continua com o mesmo erro.
Gilberto
Versão Imprimível
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.