我想做什么
我正在尝试显示已上传到频道的视频列表。
我目前所处的位置
我知道这是用户以 JSON 格式"上传"的正确 URL:
http://gdata.youtube.com/feeds/api/users/%USERNAME%/uploads?alt=json&v=2
其中用户名是频道名称,而不是与用户频道对应的字母/数字字符串(例如,MyChannel而不是hIANSUBhkj_baisu128)。
但是,当我在我的用户名(BenPearlMagic
)上进行测试时,我会收到一个很长的JSON列表,其中包含大量似乎无关紧要的数据。
我的代码是这样的:
$.getJSON('http://gdata.youtube.com/feeds/api/users/benpearlmagic/uploads?alt=json', function(data) {
console.log(data);
for(var i=0; i<data.data.items.length; i++) {
console.log(data.data.items[i].title); // title
console.log(data.data.items[i].description); // description
}
});
。但我无法让它工作。
2 即将弃用,Google 仅在 2015 年 4 月之前为您提供支持,因为新版本 v3 会使用此版本,然后再生成您的 API 开发者密钥并启用 YouTube 数据 API v3:
https://developers.google.com/youtube/v3/getting-started
var videosURL = "https://www.googleapis.com/youtube/v3/playlistItems?playlistId={myPlaylistID}&key={myAPIKey}&fields=items&part=snippet&maxResults=6&callback=?";
$.getJSON(videosURL, function(data) {
$.each(data.items, function(i,val) {
console.log(val.snippet.title);
console.log(val.snippet.resourceId.videoId);
});
});
如何获取您的播放列表ID?
https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername={myChannelName}&key={myAPIKey}
收藏、喜欢或上传
有关获取视频列表data.feed.entry
请参阅数组。
$.getJSON('http://gdata.youtube.com/feeds/api/users/benpearlmagic/uploads?alt=json', function(data) {
console.log(data);
for(var i in data.feed.entry) {
console.log("Title : "+data.feed.entry[i].title.$t); // title
console.log("Description : "+data.feed.entry[i].content.$t); // description
}
});
data.feed.entry[i]
键:ID,已发布,更新,类别,标题,内容,链接,作者,GD$评论,YT$HD,媒体$组,GD$评级,YT$统计。
以下是格式化的 json 数据: http://pastebin.com/M5yNzGeL现在,您需要条目数组的元素(第 97 行)。(请查看格式化代码以获得更好的理解,您会发现它很容易:)
你应该尝试jQuery.parseJSON
(http://api.jquery.com/jquery.parsejson/)。