【发布时间】:2016-04-20 10:55:22
【问题描述】:
所以,我似乎遇到了一个我找不到任何相关信息的问题!
基本上,我几乎整天都在尝试编写这个 YouTube API 调用,当我最终认为它完成时,我意识到它只显示 5 个结果,而不是应该显示的 7 个结果。
编辑:如果我要在浏览器中访问 $.getJSON('URL'),那么所有 7 个都会显示在 JSON 调用中。这两个视频在解析过程中似乎丢失了?
jQuery如下:
$.getJSON('https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=7&playlistId=UUmaGgGFQU_1cv3X4pIUzW9g&key={API_KEY}',function(data){
var i = 0;
$.each(data, function() {
if (typeof(data.items[0]) != "undefined") {
console.log('video exists ' + data.items[i].snippet.title);
title = data.items[i].snippet.title;
description = data.items[i].snippet.description;
videoID = data.items[i].snippet.resourceId.videoId;
if ( i <= 0 ) {
$('#player').append('<div class="first-videocontainer"><h3>'+title+'</h3><iframe width="1120" height="630" src="https://www.youtube.com/embed/'+videoID+'" frameborder="0" allowfullscreen></iframe></div>');
}
else {
$('#player').append('<div class="videocontainer"><h3>'+title+'</h3><iframe width="365" height="205" src="https://www.youtube.com/embed/'+videoID+'" frameborder="0" allowfullscreen></iframe></div>');
}
console.log(i);
i++;
} else {
console.log('video not exists');
}
});
});
我已经设置了maxResults=7,因为我相信这是使用 APIv3(?) 时唯一可用的参数。
我也在日志中收到这些错误,尽管通过谷歌搜索我什至不知道它们是否有任何帮助,因为我肯定无法从它们那里找到任何建设性的东西:
GET chrome-extension://fjhoaacokmgbjemoflkofnenfaiekifl/cast_sender.js net::ERR_FAILED
XHR failed loading: GET "chrome-extension://fjhoaacokmgbjemoflkofnenfaiekifl/cast_sender.js".
所以我想知道这是否是我刚刚忽略的 jQuery 中的一些简单的东西,或者我的 API 调用是否很糟糕。这是我第一次尝试使用它!
感谢任何帮助。
编辑 2:看起来好像它可能返回默认值并忽略我的参数? 但是,如果我设置maxResults=4,它会听。
文档:https://developers.google.com/youtube/v3/docs/videos/list#id
"maxResults 参数指定结果集中应返回的最大项目数。
注意:此参数支持与 myRating 参数结合使用,但不支持与 id 参数结合使用。可接受的值为 1 到 50,包括 1 到 50。默认值为 5。”
【问题讨论】:
-
确保您尝试拉入的所有视频都设置为公开且可嵌入(您必须在 YouTube 中手动设置)。如果未设置为公开,API 只会拉取库中设置为公开的视频。
-
这可能是您的答案,您是否尝试了许多其他查询,但它总是只返回 5 ??
-
它们被设置为公开,可悲的是 - 我能够获取 YouTube 提供的嵌入链接并手动插入它们。我还应该提到,当我访问 URL (googleapis.com/youtube/v3/…{PLAYLIST_ID}&key={API_KEY}) 时,所有 7 个都显示为 JSON。当我拨打电话并解析它时,它只是不显示它们。
-
当你
console.log(data);在循环之前的回调函数开始时。它返回浏览器控制台的对象有多少? -
如果我
console.log(data);它返回Object {kind: "youtube#playlistItemListResponse", etag: ""xxxx"", nextPageToken: "CAxQAA", pageInfo: Object, items: Array[7]}
标签: javascript jquery youtube-api youtube-data-api youtube-javascript-api