我要做的就是从YouTube频道获取每个视频的视频信息,并将它们打印在一个页面上,只有15个视频,所以它应该在使用限制内。
我在网站上读了一些教程和许多SO问题,但我似乎仍然不能把我需要的放在一起:/
以下是我到目前为止的尝试:
$url = 'http://gdata.youtube.com/feeds/api/videos?max-results=20&alt=jsonc&orderby=published&format=5&safeSearch=none&author=OpticalExpressUK&v=2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $url);
$body = curl_exec($ch);
curl_close($ch);
$data = json_decode($body, true);
echo '<pre>';
var_dump($data);
echo '</pre>';
// trying to get something out of the array!
echo $data[1]['title'];
这个的基础来自:php youtube json decode
我还研究了使用PHP
的循环代码我理想的输出应该是这样的:
Video Title
Video Description
Rating
Anything else useful that is returned in the json response.
Embedded video
我知道这可能只能得到视频的直接链接,但在阅读了这篇文章之后,我确信如果我能做到这一点,我就能把它嵌入到视频中。
我还将url中的json
更改为'jsonc',似乎每个返回之间存在很大差异,我改变的原因是因为我确信在YouTube上它说要使用jsonc?
任何帮助都非常感谢!
根据你在http://pastebin.com/eZ6U3RmS上的粘贴,正确的代码应该是:
foreach($data['data']['items'] as $item) {
echo $item['title'];
echo $item['description'];
echo $item['rating'];
echo $item['player']['default'];
// whatever you need....
}
对:http://gdata.youtube.com/feeds/api/videos/[VIDEO_ID_HERE]的请求将给您一个包含所有视频数据的xml响应,也许这会对您有所帮助