【问题标题】:How to change page results with YouTube Data API v3如何使用 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 个结果?

【问题讨论】:

    标签: api youtube youtube-api


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 2019-06-14
    • 2017-07-11
    • 2015-12-09
    • 2021-06-25
    • 1970-01-01
    • 2013-01-28
    • 2016-09-05
    相关资源
    最近更新 更多