格式化api网址以仅返回videoId。 (并使用最少的配额)

时间:2019-06-07 08:21:44

标签: youtube-api youtube-data-api home-assistant

因此,我正在使用Home Assistant启动自动功能,该功能可检索频道已上传的最新videoId,因此我可以使用我的Google Home播放它(在Roku电视上),工作正常,我正在努力创建一种自动执行GET请求的自动化程序,但是现在,我正在使用家庭助理休息传感器,该传感器通过在设置的秒数后执行GET进行更新,由于某种原因,尽管每分钟仅轮询3个传感器,所以似乎使用大约100-500个配额(仅在几个小时或更短的时间内达到我的10,000个配额),我不确定这是否是家庭助理问题,或者我使用的API是否不正确(我只需要videoId),请在下面链接我的网址:

https://www.googleapis.com/youtube/v3/search?key=API_KEY&part=id&order=date&maxResults=1

每个GET预计使用1-3个配额,每个GET可获得100个以上的配额。

1 个答案:

答案 0 :(得分:2)

查询搜索端点is more expensive而不是查询给定用户的上载播放列表的PlaylistItems端点。根据使用模式,the default quotas可能对允许用户在API的各种端点上进行的调用次数设置了相当严格的限制。

使my answer适应另一个问题,建议您改为执行以下操作:调用PlaylistItems endpoint,将给定频道的上载播放列表ID作为 playlistId 参数传递给它。

在查询channel's own endpoint时可以获得给定频道的上载播放列表ID 。所需的ID位于.items.contentDetails.relatedPlaylists.uploads。通常,频道ID及其对应的上传播放列表ID与s/^UC([0-9a-zA-Z_-]{22})$/UU\1/相关。

请注意,您只应查询一次Channels端点,然后根据需要多次使用返回的上载播放列表ID。

还请注意,您可以尝试使用应用于查询的fields参数,仅从API partial resources获取。但是,我预测(由于没有进行测试,我可能很错,因为要查询其contentDetails对象的PlaylistItems的3分成本无法得到改善。