我一直在尝试为我的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
,没有限制。是否有一些不成文的限制?
答案 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)