【问题标题】:YouTube API v3 only displaying 5 results where it should display 7YouTube API v3 只显示 5 个结果,它应该显示 7
【发布时间】: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


【解决方案1】:

我知道我回复晚了,但请使用这个网址

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channelId}&maxResults=50&key={apikey}

快乐的编码

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 2014-09-03
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    相关资源
    最近更新 更多