如何使用 YouTube Data API v3 更改页面结果

Posted

技术标签:

【中文标题】如何使用 YouTube Data API v3 更改页面结果【英文标题】:How to change page results with YouTube Data API v3 【发布时间】:2012-12-19 20:28:11 【问题描述】:

我正在尝试使用此示例从 YouTube API (v3) 获取视频数据:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&maxResults=25&order=relevance&q=site%253Ayoutube.com&topicId=%252Fm%252F02vx4&_h=1&

问题是我不明白如何更改页面结果。例如,这个查询给了我 25 个项目 (maxResults=25) 但总结果是 --> "totalResults": 548669。所以这里的大问题是如何移动到第 2 页并接收其他 25 个结果?

【问题讨论】:

【参考方案1】:

如果您查看结果,您将在“pageInfo”之后看到一个“nextPageToken”项。这需要在您的下一个请求中作为 pageToken 传递。

所以如果你调用这个 api:

https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&order=relevance&q=site%3Ayoutube.com&topicId=%2Fm%2F02vx4&key=YOUR_API_KEY

你会在下一页调用这个:

https://www.googleapis.com/youtube/v3/search?pageToken=CBkQAA&part=snippet&maxResults=25&order=relevance&q=site%3Ayoutube.com&topicId=%2Fm%2F02vx4&key=YOUR_API_KEY

【讨论】:

最后一页没有 nextPageToken 是的,v3 api 的第一个请求中没有 nextPageToken @krzysiej 我也没有收到返回的nextPageToken。但我在我的请求中删除了fields 参数,我得到了下一页。因此,请尝试将您的查询和密钥作为参数包含在您的 http 请求中。它会工作 如何移动到特定页面?比方说第 10 页? @GeorgiKovachev 似乎不受支持,但您可以使用 publishedAfter 和 publishedBefore 参数来限制您收到的项目,作为开始 10 页深度的替代方案(取决于您的具体用途案例,当然)【参考方案2】:

例如这是你的 api

https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCrA&maxResults=50&key=AIZsk

使用这个 api 你会得到类似的结果


"kind": "youtube#playlistListResponse",
"etag": "\"XpPGQXPLgenD_n8JR4Qk/05DoUs3OS-AxnDI1FJbdM\"",
"nextPageToken": "CDIQAA",
"pageInfo": 
    "totalResults": 585,
    "resultsPerPage": 50
,
"items": [
    
        "kind": "youtube#playlist",
        "etag": "\"XpPGQXPLgenD_n8JR4Qk/7m0ztlwxvPmRtXjs\"",
        .........
        .........

在这个结果中看到 "nextPageToken": "CDIQAA",

现在将 pageToken 参数添加到您的 api

前:

https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCqrA&maxResults=50&key=AIZsk&pageToken=CDIQAA

现在这是你的结果,你会得到 nextPageToken 和 prevPageToken


"kind": "youtube#playlistListResponse",
"etag": "\"XpPGQX4Qk/R3A6jpxuE\"",
"nextPageToken": "CGQQAA",
"prevPageToken": "CDIQAQ",
"pageInfo": 
    "totalResults": 585,
    "resultsPerPage": 50
,
"items": [
    
        "kind": "youtube#playlist",
        "etag": "\"XpPGQXR4Qk/XsatNRtxJQ\"",

        .........
        .........

【讨论】:

但为什么每页结果总是 50 @ios

以上是关于如何使用 YouTube Data API v3 更改页面结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用新的 YouTube Data API (V3) 获取某个频道的上传视频列表?

如何使用来自 YouTube Data API V3 的 enpoint 搜索通过 channelId 获取频道图标

如何通过 YouTube Data API v3 从我自己的 YouTube 频道获取所有视频

使用 YouTube Data API v3 确定 YouTube 频道的上传速率

如何从 Youtube Data API v3 获取最大搜索结果?

YouTube 频道中的“已发布视频”和“上传”有啥区别?以及如何通过 YouTube Data v3 API 获取它们?