如何解析从YouTube JSON响应派生的关联数组



我要做的就是从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响应,也许这会对您有所帮助

相关内容

  • 没有找到相关文章

最新更新