【问题标题】:Youtube api V3 nextPageToken repeatsYoutube api V3 nextPageToken 重复
【发布时间】:2019-08-05 12:45:26
【问题描述】:

我使用 url 检索 youtube 播放列表项目时得到了一些奇怪的结果。首先,youtube 播放列表最多可以包含 200 个播放列表项。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status,contentDetails&maxResults=50&playlistId=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI&key=API_KEY

  1. 当我运行它时,我得到了正确的结果(返回 50 项,总结果 200,每页结果 50,nextPageToken: "CDIQAA")

  2. 然后我总是使用最后一个 nextPageToken 运行新请求:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status,contentDetails&maxResults=49&playlistId=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI&key=API_KEY&pageToken=CDEQAA

100 个结果,nextPageToken: "CGQQAA",

  1. https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status,contentDetails&maxResults=49&playlistId=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI&key=API_KEY&pageToken=CGQQAA

目前有 150 个结果,nextPageToken: "CDIQAA"

现在这个nextPageToken一直在重复它最初的nextPageToken,为什么,我还没有检索到所有200个结果?

【问题讨论】:

    标签: pagination youtube youtube-data-api


    【解决方案1】:

    我猜您的代码中存在一些逻辑问题,我在第三次请求后获得了 CJYBEAA 令牌。 这里的函数适用于您的播放列表 ID 并返回整个 200 个视频 ID:

    def getPlaylistVideosIDs(playlist_id):
        videos_IDs = []
        search = YOUR_YOUTUBE_KEY.playlistItems().list(part='snippet', playlistId=playlist_id,
                                                  maxResults=50).execute()
    
        try:
            nextPageToken = search['nextPageToken']
        except KeyError:
            nextPageToken = None
    
        for item in search['items']:
            videos_IDs.append(item['snippet']['resourceId']['videoId'])
    
        while (nextPageToken):
            search = YOUR_YOUTUBE_KEY.playlistItems().list(pageToken=nextPageToken, part='snippet',
                                                      playlistId=playlist_id,
                                                      maxResults=50).execute()
            for item in search['items']:
                videos_IDs.append(item['snippet']['resourceId']['videoId'])
    
            try:
                nextPageToken = search['nextPageToken']
            except KeyError:
                break
    
        return videos_IDs
    

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2018-08-28
      • 2018-08-01
      • 1970-01-01
      • 2015-07-27
      • 2018-08-13
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多