javascript - 为什么我要在一小时内在 youtube api 上运行我的每日配额?
问题描述
我为我的网站使用 youtube API v3,提供歌词翻译视频。我得到了 250.000 个配额,但我在大约一个小时内用完了它,尽管我没有发送足够的请求来超过它。
它说我最后一天只发送了 86k 请求,但 89% 的请求返回 403 错误。
但这里显示我使用了所有 250.000 限制配额
我使用 HTTP 源授权,所以只有我的站点可以使用这个 api 密钥。我记录了我发送的请求,以检查我没有错误地将它们加倍。
也许我弄错了什么?
解决方案
Youtube 对配额有这样的说法:
Google 通过为每个请求分配费用来计算您的配额使用情况,但每个请求的费用并不相同。两个主要因素会影响请求的配额成本:
不同类型的操作有不同的配额成本。
- 仅检索每个返回资源的 ID 的简单读取操作的成本约为 1 个单位。
- 一次写入操作的成本约为 50 个单位。
- 视频上传的成本约为 1600 单位。
读取和写入操作使用不同数量的配额,具体取决于每个请求检索的资源部分的数量。请注意,插入和更新操作会写入数据并返回资源。因此,例如,插入播放列表的写入操作配额成本为 50 个单位,加上返回的播放列表资源的成本。
如以下部分所述,每个 API 资源都分为多个部分。例如,一个播放列表资源有两个部分,片段和状态,而一个频道资源有六个部分,一个视频资源有 10 个。每个部分都包含一组相关属性,并且这些组被设计为您的应用程序只需要检索它实际使用的数据类型。
返回资源数据的 API 请求必须指定请求检索的资源部分。然后,每个部分将大约 2 个单位添加到请求的配额成本中。因此
videos.list
,仅检索每个视频的片段部分的请求可能需要 3 个单位的成本。但是,videos.list
检索每个资源的所有部分的请求可能需要大约 21 个配额单位的成本。
要点是您的配额是一个积分池,不同类型的请求花费不同数量的积分。