我正试图建立一个网站(为我自己(,向我展示youtube上20个频道的5个最新视频。所以我在下面的请求中为每个特定的通道使用:
https://www.googleapis.com/youtube/v3/search?key={API_KEY}&channelId={CHANNEL_ID}&part=snippet,id&order=date&maxResults=5
每个请求成本100个单位,20个频道是2000个单位,我只有10000个单位/天,因为youtube API的配额。因为我试图弄清楚它是如何工作的,有时也会出现错误,所以我多次使用同一个请求,我的配额很快就用完了。
因此,我的问题是:有没有办法替换SEARCH
请求中的CHANNEL
/VIDEOS
(列表(请求,以降低请求的成本(此成本仅为1个单位(。或者可能是从所有20个频道获得所有5个视频的一个请求?
如果我的英语有任何错误,我很抱歉提前感谢大家。
您可以使用Activities.list
API端点,查询时使用:
- CCD_ 5
- CCD_ 6
fields=items(snippet(type,publishedAt),contentDetails(upload))
和publishedAfter=...
其中CHANNEL_ID在您的兴趣(因此N
通道意味着N
端点调用(。
您应该计算一个有意义的publishedAfter
值来传递给端点。将此值附加到您在应用程序中监视的每个频道,并将其保持为1秒加上该频道最新视频对应的publishedAt
属性的值。
初始化/重置此每个通道的日期时间值只需在发出不带publishedAfter
参数的端点调用时完成。
根据文档,您将从该端点获得一个由Activities resource
项组成的结果集,其中包含以下信息:
contentDetails.upload(对象(
上传对象包含有关上传视频的信息。仅当snippet.type
为upload
时,才存在此属性。contentDetails.upload.videoId(字符串(
YouTube用于唯一标识上传视频的ID。
官方文档指出,对Activities.list
端点的每次调用都有一个单位的配额成本。