18 decembrie 2008

Verificare disponibilitate video Youtube

Exista destule video-uri de pe YouTube pe bloguri/siturie. Si stiti ce neplacut e cand descoperiti dupa un timp ca multe dintre ele nu mai sunt disponibile (cu pateticul black screen of death "We're sorry, this video is no longer available"). Solutia (PHP) este :
function curl_get_file_contents($URL)
{
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $URL);
$contents = curl_exec($c) or die("SIZE ERROR<script type='text/javascript'>var t=setTimeout('timeFct()',5000)</script>");
curl_close($c);
if ($contents) return $contents;
else return FALSE;
}

function urlfilesize($url,$thereturn) {
if (substr($url,0,4)=='http') {
$x = array_change_key_case(get_headers($url, 1),CASE_LOWER);
$x = $x['content-length'];
}
else { $x = @filesize($url); }
if (!$thereturn) { return $x ; }
elseif($thereturn == 'mb') { return round($x / (1024*1024),2) ; }
elseif($thereturn == 'kb') { return round($x / (1024),2) ; }
}
$vtemp = $_GET['v'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.youtube.com/watch?v=".$vtemp);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$info= curl_exec($ch);
$lun = strlen($info);
$pos1 = strpos($info,"&t=",$pos1);
$Stri=substr($info, $pos1+3, 32);
if($Stri!='') echo "Disponibil"; else echo "Indisponibil";


[EDITARE 19-12-2008] Sunt stupid, functiile nu isi au locul aici ! Asa ca codul poate incepe de la $vtemp = $_GET['v'];