Pessoal não tenho conhecimento nenhum em perl e gostaria de saber se alguém pode me ajudar fazendo um arquivo que no meu pensamento não passará de umas 30 linhas.
Vou postar aqui o arquivo antigo que funcionava:
Esse arquivo era usado juntamento com o squid para obrigar o cache dos videos, mas parou de funcionar.
Código :#!/usr/bin/perl $|=1; while (<>) { @X = split; $url = $X[0]; ###youtube $url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)&.*@squid://videos.youtube.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)$@squid://videos.youtube.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/videodownload\?(.*)docid=(.*?)$@squid://videos.google.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/videodownload\?(.*)docid=(.*?)&.*@squid://videos.google.INTERNAL/ID=$3@; ###photobucket $url =~s@^http://(.*?)/albums\?&.*@squid://images.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?$@squid://images.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?&.*@squid://videos.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?$@squid://videos.photobucket.INTERNAL/ID=$3@; print "$url\n"; }
Hoje usam estes dois aqui:
Arquivo1 youtube:
Código :<?php $save_quality = false; $domain = "youtube"; include_once("youtube.com.funcs.php"); logadd("IN:($ip)$url"); if ((preg_match("/\.googlevideo\.com/", $url,$result)) or (preg_match("/\.youtube\.com/", $url,$result))){ // get videoid $videoid = get_videoid($url); // get quality if ($save_quality) { $file=get_quality($url)."$videoid.flv"; }else{ $file="$videoid.flv"; } // check if url need to pass if ( ($file != ".flv") and (strrpos($url,"/get_video?") > 0) or (strrpos($url,".googlevideo.com") > 0 and (strrpos($url,"videoplayback")) >0 and (strrpos($url,"&id=")) >0 )) { check_file($file,$url,$domain); } else { // dont find file, repass url print "$url\n"; logadd("OUT:$url ($file)"); } } else { // url not match print "$url\n"; logadd("OUT:$url (dont match)"); } ?>
Arquivo 2 youtube_conf:
Código :<?php function get_videoid($url) { $return = ""; $url = preg_replace("/\?/","&",$url); $url = explode("/",$url); $url = $url[3]; $url = explode("&",$url); foreach ($url as $valor){ $valor = explode("=",$valor); if ($valor[0] == "id" || $valor[0] == "video_id") { $return = $valor[1]; break; } } return $return; } function get_quality($url) { $return = ""; $url = preg_replace("/\?/","&",$url); $url = explode("/",$url); $url = $url[3]; $url = explode("&",$url); foreach ($url as $valor){ $valor = explode("=",$valor); if ($valor[0] == "fmt") { $return = $valor[1]; break; } } return $return; } ?>
Hoje os 2 ultimos arquivos em php são usados no thunder cache.
O que reparei é que o thunfder cache utiliza muitos recursos da maquina sendo assim seria muito melhor se conseguicemos converter o arquivo php para o perl pois consome muito menos.
Por esse motivo coloquei o arquivo perl que funcionava antes de a google mudar a forma de enviar os videos aos clientes.
Espero que alguem possa me ajudar e tb ajudar a todos, desde já agradeço.