首页 > 解决方案 > 如何让 YouTube Data API 返回超过 20 页的列表结果?

问题描述

我有一个非常大的点赞视频播放列表(约 2500 个视频),我正试图从中获取所有音乐类别的视频。因此,我创建了一个循环结构来nextPageToken从最后一个请求中获取并将其用作pageToken当前请求的。但是,当我达到 1000 个总结果或 20 个请求时,它会打断我。我查看了以前的问题,他们都说将请求分成几个范围,但这已经使用了几个范围,API 只是不包含nextPageToken在第 20 个请求中,因此结束了我的循环(以及我获得更多的能力页面令牌)。我怎样才能得到我列表的后 2/3?这是我的代码:

ids_list = []
first = True
while True:
# Request the next page of the liked videos list
    if first:
        request = youtube.videos().list(
            part='snippet,id',
            myRating='like',
            maxResults='50'
        )
        first = False
    else:
        request = youtube.videos().list(
            part='snippet,id',
            myRating='like',
            maxResults='50',
            pageToken=next_page
        )
    response = request.execute()
        
    # Add all the music vids from this page into ids_list
    for video in response['items']:
        if video['snippet']['categoryId'] == '10':
            ids_list.append(video['id'])
                    
                    
    i += 1      
    # Continue down the pages until there are no more next pages
    if 'nextPageToken' in response:
        next_page = response['nextPageToken']
    else:
        break

任何帮助表示赞赏。谢谢!

标签: pythonyoutube-data-api

解决方案


推荐阅读