Имеется давольно старый код, который парсит видео ютуба по ссылке
<?
require_once('libs/JSON.php');
$json = new Services_JSON();
function youtube($url){
global $uid, $json;
if(!ereg("http://", $url))$url = "http://".$url;
$pars_url = parse_url($url);
parse_str($pars_url["query"]);
$html = str_replace('$', '', @file_get_contents("http://gdata.youtube.com/feeds/api/videos/".$v."?alt=json"));
$video = $json->decode($html);
$video_array = (array) $video->entry;
//print_R($video_array["title"]->t);
//print_R($video->entry->content);
if($video_array["title"]->t){
$video_image = "http://img.youtube.com/vi/".$v."/0.jpg";
$video_simage = "http://img.youtube.com/vi/".$v."/2.jpg";
$out["url"] = $url;
$out["title"] = iconv("utf-8", "windows-1251", str_replace(array("\n" ,"\r", '"',"/"),array('\n' ,'\r', '\"', ""), $video_array["title"]->t));
$out["description"] = iconv("utf-8", "windows-1251", str_replace(array("\n" ,"\r", '"',"/"),array('\n' ,'\r', '\"', "\/"),$video_array["content"]->t));
$out["images"] = array($video_image, $video_simage);
$out["domain"] = $pars_url["host"];
$out["duration"] = $video_array["mediagroup"]->ytduration->seconds;
$out["error"] = "1";
$out["vid"] = $v;
$out["uid"] = $uid;
$out["hash"] = md5($uid.$out["vid"]."youtube_add".date("ym").$out["duration"].$video_image.$video_simage);
}else{
$out["error"] = "2";
}
//print_R($out);
return $out;
}
?>
Данный метод давно не работает. Где нужно править, что бы работало? Заранее благодарю..
Найдено на просторах enSO (да простит меня сообщество). Альтернативный вариант:
function get_youtube($url){
$youtube = "http://www.youtube.com/oembed?url=". $url ."&format=json";
$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
return json_decode($return, true);
}
$url = // youtube video url
// Display Data
print_r(get_youtube($url));
Проверил, работает. Конкретно по Вашему коду: если в наглую перейти по генерируемой ссылке, то сервис отвечает, что сервис не работает (но может у меня руки корявые).
Есть еще один вариант, на самой взгляд, самый геморойный: использовать Google Youtube API
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На серверах с установленной Vestacp не работает функция flush, перепробовал уже все возможные варианты комбинацийВ php
Проблема заключается в функции checkEmail, не могу понять только в чем именно проблема