如何使用youtube api在youtube搜索结果中获得更多结果?

2024-06-26 00:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我用youtube-v3-api获取搜索列表,用“nextPageToken”只能得到500个左右的结果,但页面信息显示它包含了20多万个结果,如何获得更多

def Search(sKeyWord):
"""Input search keyword, return search link list of youtube
Args:
    Input:
        sKeyWord: Search keyword
    Output:
        lVideos: A list of searched videos
"""
# gdr = googleapiclient.discovery.Resource
iMax = 50
gdrYoutube = build(
    YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
    developerKey=DEVELOPER_KEY)

sPageToken = ""
lVideos = []
dictResponse = gdrYoutube.search().list(
    q=sKeyWord,
    part='id,snippet',
    maxResults=iMax,
    pageToken=sPageToken
    ).execute()

while(dictResponse.get("nextPageToken")):
    sPageToken = dictResponse["nextPageToken"]
    for dictSearchResult in dictResponse.get('items', []):
        if dictSearchResult['id']['kind'] == 'youtube#video':
            """
            lVideos.append(
                '%s (%s)' % (
                    dictSearchResult['snippet']['title'],
                    dictSearchResult['id']['videoId']))
            """
            lVideos.append(dictSearchResult['id']['videoId'])
    dictResponse = gdrYoutube.search().list(
        q=sKeyWord,
        part='id,snippet',
        maxResults=iMax,
        pageToken=sPageToken
        ).execute()

return lVideos

Tags: idinputsearchyoutubesnippetlistnextpagetokenimax