Pagination Youtube api V3 nextPageToken重复

Pagination Youtube api V3 nextPageToken重复,pagination,youtube,youtube-data-api,Pagination,Youtube,Youtube Data Api,使用url检索youtube播放列表项目时,我得到了一些奇怪的结果。首先,youtube播放列表最多可以包含200个播放列表项 当我运行这个程序时,我得到了正确的结果(返回50个项目,总结果200个,每页结果50个,下一个getoken:“CDIQAA”) 然后,我始终使用last nextPageToken运行新请求: 100个结果,下一步:“CGQQAA” 到目前为止,已有150项结果,下一个目标:“CDIQAA” 现在这个nextPageToken在第一次nextPageToken时

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

  • 当我运行这个程序时,我得到了正确的结果(返回50个项目,总结果200个,每页结果50个,下一个getoken:“CDIQAA”)

  • 然后,我始终使用last nextPageToken运行新请求:

  • 100个结果,下一步:“CGQQAA”

  • 到目前为止,已有150项结果,下一个目标:“CDIQAA”


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

    我想你的代码中有一些逻辑问题,我在第三次请求后得到了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