Youtube数据Api在1000个结果后停止

时间:2017-04-05 10:57:57

标签: youtube youtube-api youtube-data-api

我一直在尝试为我的YouTube频道检索所有订阅者的列表。我正在使用格式的查询:

https://content.googleapis.com/youtube/v3/subscriptions?mySubscribers=true&maxResults=50&part=subscriberSnippet&access_token=xxxx

然而,在1000个结果之后(例如,20页@ 50页/页,或50页每页20页)它停止。在它为myRecentSubscribers说的文档中,它应该只检索1000,但对于mySubscribers,没有限制。是否有一些不成文的限制?

1 个答案:

答案 0 :(得分:1)

我只是遇到了以下代码的相同问题:

import os

import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors

scopes = ["https://www.googleapis.com/auth/youtube.readonly"]

def main():
    # Disable OAuthlib's HTTPS verification when running locally.
    # *DO NOT* leave this option enabled in production.
    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

    api_service_name = "youtube"
    api_version = "v3"
    client_secrets_file = "google_oauth_client_secret.json"

    # Get credentials and create an API client
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    credentials = flow.run_console()
    youtube = googleapiclient.discovery.build(
        api_service_name, api_version, credentials=credentials)

    next_page_token = ''
    count = 0
    
    while next_page_token != None:
        print("Getting next page:", next_page_token, count)

        request = youtube.subscriptions().list(
            part="subscriberSnippet",
            maxResults=50,
            mySubscribers=True,
            pageToken=next_page_token
        )
        response = request.execute()
        next_page_token = response.get('nextPageToken')

        subscribers = response.get('items')
        for subscriber in subscribers:
            count += 1

    print('Total subscribers:', count)

if __name__ == "__main__":
    main()

如果myRecentSubscribers=True,这是预期的行为,但列表应以mySubscribers=True继续...

编辑:显然,这是一个WONT FIX问题,并且该文档最终可能会进行更新以反映出来。(https://issuetracker.google.com/issues/172325507