YouTube v3 API-pageToken不起作用

恢复Monica Cellio

我在Youtube v3 API(特别是pageToken概念)上有些挣扎我是数十种其他API所熟悉的一种,但似乎无法使用。

我提出了一个搜索请求,并获得了预期的结果,同时还有,nextPageToken因为存在的结果数量超过了请求的数量。

然后,我执行一个请求并传递该pageToken值,但此后我开始得到错误的结果。

这是我到目前为止的代码(我确实在另一段代码中加载了gapi客户)...

function getVideos(pageToken) {
    var options = {
        channelId: "UC1HkhNoUIYYyaruWmxRRUsQ",
        q: "GTA V - Stunt practise",
        part: "snippet",
        maxResults: 10,
        order: "date"
    };

    if (pageToken) {
        options.pageToken = pageToken;
    }

    var request = gapi.client.youtube.search.list(options);

    request.execute(function(response) {
        var items = response.result.items;
        if (!items.length) return;

        for (var i = 0; i < items.length; i++) {
            var item = items[i];
            addVideo({
                id: item.id.videoId,
                title: item.snippet.title,
                description: item.snippet.description,
                date: new Date(item.snippet.publishedAt),
                thumbnail: item.snippet.thumbnails.high.url
            });
        }

        if (response.nextPageToken) {
            getVideos(response.nextPageToken);
        }
    });
}

function addVideo(video) {
    console.log(video.title);
}

getVideos();

第一批结果显示以下内容:

GTA V - Stunt practise 21
GTA V - Stunt practise 20
GTA V - Stunt practise 19
GTA V - Stunt practise 18 (version 1)
GTA V - Stunt practise 18 (version 2)
GTA V - Stunt practise 17
GTA V - Stunt practise 16
GTA V - Stunt practise 15
GTA V - Stunt practise 14
GTA V - Stunt practise 13

这是正确的(嗯,足够接近)。但是,第二批结果完全是错误的...

GTA V - Stunt practise 01
GTA V - Stunt practise 07
GTA V - Stunt practise 02
GTA V - Stunt practise 08

它们数量不够,它们不是预期的视频,而且也不正常。

有没有人对Youtube API有任何经验,特别是在搜索结果中使用页面令牌?非常感谢您的帮助。

恢复Monica Cellio

我现在认为这是一个错误。我之所以这么认为,也是我发布答案的原因,是因为它与播放列表完美结合...

function getVideos(prev) {
    var options = {
        part: "snippet",
        playlistId: "PLvocdfFatwmphP9Lj4Mzpht4H75PtLA-p",
        maxResults: 10
    };

    if (prev) {
        options.pageToken = prev.nextPageToken;
    }

    var request = gapi.client.youtube.playlistItems.list(options);

    request.execute(function(response) {
        var items = response.result.items;
        if (!items.length) return;

        for (var i = 0; i < items.length; i++) {
            var item = items[i];
            addVideo({
                id: item.id.videoId,
                title: item.snippet.title,
                description: item.snippet.description,
                date: new Date(item.snippet.publishedAt),
                thumbnail: item.snippet.thumbnails.high.url
            });
        }

        if (response.nextPageToken) {
            getVideos(response);
        }
    });
}

function addVideo(video) {
    console.log(video.title);
}

getVideos();

这意味着我在上传视频时必须手动将其添加到播放列表中,这是我想要避免的。如果我必须参与进来,这并不是一个动态的过程!

如果有人偶然发现该页面并遇到与我相同的问题,则会发布此答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Youtube v3 API-pageToken不起作用

来自分类Dev

使用pageToken检索所有播放列表条目Youtube API V3

来自分类Dev

如何使用YouTube API V3?

来自分类Dev

Youtube v3 API视频语言

来自分类Dev

Youtube API V3和Etag

来自分类Dev

Youtube API v3 .NET集成

来自分类Dev

页面令牌youtube api v3

来自分类Dev

YouTube API v3获取评论

来自分类Dev

youtube数据API v3搜索

来自分类Dev

Youtube API V3和Etag

来自分类Dev

YouTube iframe API v3限制

来自分类Dev

Gwt YouTube数据API v3

来自分类Dev

Youtube API v3获得评论

来自分类Dev

Youtube api v3添加评论

来自分类Dev

解析 youtube 数据 v3 api

来自分类Dev

Concur V3 Api对用户不起作用

来自分类Dev

使用Youtube V3 API的YouTube相关视频

来自分类Dev

iOS应用程序上的Youtube API v3。我的API密钥不起作用,但是其他人的密钥对同一应用程序也起作用。错误403

来自分类Dev

Youtube API v2在v3上更新

来自分类Dev

Android中的Youtube API不起作用

来自分类Dev

Youtube API onReady不起作用

来自分类Dev

Youtube API v3始终返回错误403(accessNotConfigured)

来自分类Dev

chrome.identity和YouTube v3 API?

来自分类Dev

使用Javascript的YouTube数据API v3

来自分类Dev

使用YouTube v3 API更新标题和描述?

来自分类Dev

Youtube API v3持续时间PlaylistItem

来自分类Dev

Youtube API v3显示“访问权限未配置”

来自分类Dev

使用YouTube API v3获取视频的完整说明

来自分类Dev

Get actual quota limit from youtube v3 API