YouTube.search(API)返回空数组

时间:2018-03-18 04:48:20

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

在我的代码中,我使用promises来控制异步,在我发送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次之后的答案是空的安排(项目)

enter image description here

1 个答案:

答案 0 :(得分:1)

我在Youtube搜索方法中也遇到类似的情况,我建议您使用publishedAfterpublishedBefore参数来减少搜索时间。看起来Youtube尝试通过估算来优化每个搜索请求的CPU服务器时间。因此,您需要对搜索查询更加具体,或者需要减少搜索时间。例如,我已经尝试了非常具体的视频,并在说明中添加了唯一的编号。我可以在Youtube网站上轻松找到它,但是如果没有添加searchpublishedBefore大约1小时的发布时间,我就无法使用publishedAfter方法。因此,尝试一下!