YouTube API 是否限制一次搜索查询最多 500 个视频?

发布于 2025-01-11 23:53:09 字数 527 浏览 0 评论 0原文

我为一个搜索查询获取了大约 500 个 YouTube 数据。

我正在使用从 youtube_tutorial 克隆的代码。

def geo_query(video_id):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
                    developerKey=DEVELOPER_KEY)

    video_response = youtube.videos().list(
        id=video_id,
        part='snippet, recordingDetails, statistics'

    ).execute()

有没有办法无限制地提取所有 YouTube 视频? YouTube 是否限制一次搜索查询只能显示 500 个视频?

I am getting around 500 YouTube data for one search query.

I am using the code cloned from youtube_tutorial.

def geo_query(video_id):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
                    developerKey=DEVELOPER_KEY)

    video_response = youtube.videos().list(
        id=video_id,
        part='snippet, recordingDetails, statistics'

    ).execute()

Is there any way to extract all the YouTube videos without any limit?
Does YouTube limit you to 500 videos for one search query?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天旳寂寞 2025-01-18 23:53:09

有没有办法无限制地提取所有 YouTube 视频?

不可以,原因有两个:文档明确指出最多可以有 500 个视频,其次配额成本会很大。

>注意:如果您的请求指定了channelId参数的值并将type参数值设置为video,但未同时设置forContentOwner、forDeveloper或forContentOwner之一,则搜索结果将限制为最多500个视频forMine 过滤器。

即使没有,您也会遇到配额问题。

配额数学

您使用的方法是 search.list

此方法返回每个请求的最大结果为 50 行

maxResults 无符号整数
maxResults 参数指定结果集中应返回的最大项目数。可接受的值为 0 到 50(含)。默认值为 5。

每次发出请求时,您都会收到 50 行,然后您可以使用页面令牌来请求下一组行

pageToken 字符串
pageToken 参数标识结果集中应返回的特定页面。在 API 响应中,nextPageToken 和 prevPageToken 属性标识可以检索的其他页面。

现在请求告诉我们总共有 1000000 行等待您。

"pageInfo": {
    "totalResults": 1000000,
    "resultsPerPage": 50
  },

如果一次 50 行,则需要 20,000 个请求。如果我们然后检查配额计算器每个请求的成本

搜索列表 100

默认配额为 10000,这意味着您可以在用完当天配额之前发出 1000 个请求。因此,您一天最多可以观看 50,000 个视频。

Is there any way to extract all the YouTube videos without any limit?

No for two reasons, the documentation clearly states you can have a maximum of 500 videos and secondly the quota cost would be huge.

>Note: Search results are constrained to a maximum of 500 videos if your request specifies a value for the channelId parameter and sets the type parameter value to video, but it does not also set one of the forContentOwner, forDeveloper, or forMine filters.

Even if it didnt you would have issues with quota.

quota math

The method you are using is search.list

This method returns a max result of 50 rows per request

maxResults unsigned integer
The maxResults parameter specifies the maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive. The default value is 5.

Each time you make a request you get 50 rows back you can then use the page tokens to request the next set of rows

pageToken string
The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.

Now the request tells us that there is a total of 1000000 rows waiting for you.

"pageInfo": {
    "totalResults": 1000000,
    "resultsPerPage": 50
  },

At 50 rows at a time that would be 20,000 requests. If we then check the quota calculator the cost for each request

search list 100

The default quota is 10000 which would mean you can make 1000 requests before you run out of quota for the day. So you should be looking at a max of 50,000 videos you could get back in a day.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文