第一件事,这不是重复的问题有关YouTube API在计算器上 其他的答案是预先2013年,并且不再工作。获取视频ID的Youtube视频标题在PHP第一
我必须使用PHP中的YouTube视频ID获取YouTube视频标题。
目前,我这样做是这样的:
$html = "http://www.youtube.com/watch?v=".$video_id;
$doc = new DOMDocument();
$doc->loadHTMLFile($html);
$doc->preserveWhiteSpace = false;
$title_div = $doc->getElementById('eow-title');
$title = $title_div->nodeValue;
但这是抛出错误为:
Warning: DOMDocument::loadHTMLFile(http://www.youtube.com/watch?v=hMpCsfvi_3c): failed to open stream: HTTP request failed! HTTP/1.0 429 Too Many Requests in /home/vhosts/xxxx/xxxx/get_youtube_title.php on line 6
Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "http://www.youtube.com/watch?v=hMpCsfvi_3c" in /home/vhosts/xxxx/xxxx/get_youtube_title.php on line 6
以上方法适用于GoDaddy的托管罚款,但不能在101domain.com托管。
我已经尝试了另一种方法是这样的:
if($content=file_get_contents("http://youtube.com/get_video_info?video_id=".$video_id)) {
parse_str($content, $ytarr);
$myvideos[$i]['video_title']=$ytarr['title'];
}
else
$myvideos[$i]['video_title']="No title";
这将引发错误为:
Warning: DOMDocument::loadHTMLFile(http://youtube.com/get_video_info?video_id=hMpCsfvi_3c): failed to open stream: HTTP request failed! HTTP/1.0 402 Payment Required in /home/vhosts/xxxx/get_youtube_title.php on line 6
Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "http://youtube.com/get_video_info?video_id=hMpCsfvi_3c" in /home/vhosts/xxxx/get_youtube_title.php on line 6
末方法我想是这样的:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://youtube.com/get_video_info? video_id=".$video_id);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
这不扔任何错误,但不起作用。 错误报告是E_ALL
和display_errors
设置为1.
有人告诉我,使用YouTube API更安全,因为我是YouTube API的新手,我需要一些帮助。
你能告诉我怎样才能得到带有视频ID的视频标题在PHP中? 也是一个易于使用的YouTube API教程。
答案 “易于遵循教程” 的一部分 - https://github.com/ madcoda/php-youtube-api/wiki /开始与php-composer :) – marmeladze