如何减少用于查询频道所有视频的 viewCount 的配额?

How do I reduce the quota I use to query viewCount on all videos of a channel?

让我先描述一下我为什么需要这个:

每次我找到一个新频道时,我都想观看一些最流行的视频以了解它。寻找最受欢迎的视频并不总是很有帮助,因为它可能很旧或只有一个病毒视频。所以我想找到最近上传的最受欢迎的视频。这个想法是计算每个视频的分数:score = views / hoursSinceUpload

所以第一个问题是是否已经存在这样的东西,我没有找到任何东西。

所以我自己编写了它并且它工作得很好,但是检查一个频道使用了我的很多配额。归结为获取一个频道的每个视频的 viewCount,这必须通过对每个视频的一个请求来完成。

有没有办法通过一个请求获得多个 viewCounts?

显然免费限额是每天 10.000 是有原因的,但仍然...

此外,由于重点是获取最近最流行的视频并且不需要所有视频并且可以通过这种方式减少请求,但我仍然想知道我是否忽略了什么。

谢谢!

您可以通过使用其 id 请求参数的以下功能显着减少对 Videos.list 端点的 API 调用次数(下面的重点是我的) :

id (string)

The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) that are being retrieved. In a video resource, the id property specifies the video's ID.

虽然没有明确记录,但逗号分隔的 ID 列表最多可以包含 50 个项目。

因此,对于一组 N 个视频 ID,不必调用 Videos.list N 次,您可以将调用次数减少到 floor(N / 50) + (N % 50 ? 1 : 0).