0

所以这里有一些代码可以将播放列表输出为列表,这样我就可以对其进行样式设置并加载播放器。目前我只想要一些原始数据,我可以看到我需要哪些数据。

$playlist_id = "bKIMlqJAz6GSqtm2x2rFQuIa8NKEhCTa";
$url = "https://gdata.youtube.com/feeds/api/playlists/".$playlist_id."?v=2.1&alt=json";
$data = json_decode(file_get_contents($url),true);
$info = $data["feed"];
$video = $info["entry"];
$nVideo = count($video);

echo "Playlist Name: ".$info["title"]['$t'].'<br/>';
echo "Number of Videos (".$nVideo."):<br/>";

for($i=0;$i<$nVideo;$i++){
echo "ID: ".$video[$i]['id']['$t'].'<br/>'; // this line causing problems
echo "Name: ".$video[$i]['title']['$t'].'<br/>';
echo "Link: ".$video[$i]['link'][0]['href'].'<br/>';
echo "Image: <img src='".$video[$i]['media$group']['media$thumbnail'][1]['url']."' /><br />";
}

一切正常,doodey doodey。除了我拿不到身份证。

例如ID返回这一堆垃圾;ID:tag:youtube.com,2008:播放列表:bKIMlqJAz6GSqtm2x2rFQuIa8NKEhCTa:PLLdE_Ow1C_Zv2bmDW9Yj8Foj4dKO3C4BJthoFmebTFUs

而不是链接和标题正确返回的 LFRRGYNOUqs。

我搜索了谷歌的文档,似乎 $video[$i]['id'] 是我需要的对象。

那么为什么返回那个字符串而不是我的视频 ID 呢?

4

1 回答 1

0

根据xml部分的api(“json”版本基本相同):“标签指定了唯一且永久地标识提要或提要条目的URN。”

https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_id

在您的情况下,您可以使用$video[$i]['media$group']['yt$videoid']['$t'].

您可能想使用“jsonc”而不是“json”,它返回专门为 json 格式化的数据,而不是对 xml 版本进行转录。即https://gdata.youtube.com/feeds/api/playlists/bKIMlqJAz6GSqtm2x2rFQuIa8NKEhCTa?v=2.1&alt=jsonc

在那里,您会注意到播放列表中的每个“项目”都有一个对应于提要条目的 id 和一个具有自己 id 的视频部分。

于 2013-07-10T16:37:38.940 回答