【问题标题】:YouTube.search (API) returns empty arrayYouTube.search (API) 返回空数组
【发布时间】:2018-03-18 04:48:19
【问题描述】:

在我的代码中,我使用 Promise 来控制异步,在下一个请求中我发送 nextPageToken,然后发送带有空视频的请求

--- 代码 -

  search_this_q="cats";

    function load(){
        search(search_this_q)
        .then(function(data){
            console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
        .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
            .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
                .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
                    .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
        .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
        .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
        .then(function(data){
        console.log(data)
            return next_Page_Search(data.nextPageToken,search_this_q);
        })
        .then(function (result) {
            console.log(".theen finish load")
            console.log(result);
            console.log(".theen finish load")
        });
    }

function next_Page_Search (token_Page,search_this) {
  return new Promise((resolve, reject) => {
     var data={
            part: 'id', //'id,snippet',
            maxResults: 50,
            pageToken:token_Page,
            q:search_this,
            type:'video',
            // videoEmbeddable:true,
            key:"mykey"
        };
    // GET
    $.get("https://www.googleapis.com/youtube/v3/search",
        data,function (data,status){
            resolve(data);
        }
    );
    // end GET
  });
}

--- 代码 -

第9次后的答案是空排列(项目)

【问题讨论】:

  • 您的预期结果是什么?它应该显示更多结果还是没有更多可显示的内容?
  • 我注意到当没有更多结果时,YouTube 似乎确实返回了空项目。检查这种情况。
  • 我期待更多结果,因为在第一个结果中返回 {pageInfo: resultsPerPage: 50,totalResults: 1000000},而我勉强在 350

标签: youtube youtube-api youtube-data-api


【解决方案1】:

我的 Youtube 搜索方法也有类似的情况,我可以推荐使用 publishedAfterpublishedBefore 参数来缩短搜索时间。看起来 Youtube 试图通过估计来优化每个搜索请求的 cpu 服务器时间。因此,您需要更具体地使用搜索查询,或者您需要缩短搜索时间。例如,我尝试了非常具体的视频,描述中具有唯一编号。我可以在 Youtube 网站上轻松找到它,但如果不添加 publishedBeforepublishedAfter 大约 1 小时的发布时间,我就无法使用 search 方法。所以,试试吧!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    相关资源
    最近更新 更多