首页 > 解决方案 > LiveChatMessages.list 方法会产生多少配额成本?

问题描述

我现在正在编写这个应用程序,它的一个组件是使用 LiveChatMessages 资源的列表方法来检索流中的所有实时聊天。我的问题不在于功能本身,youtube 文档对此非常清楚(如果您正在阅读本文,请向 youtube 工程师致敬)。

我的问题是关于配额制度。在解决这个问题的过程中,我首先去了 youtube 数据 API 配额的圣杯,也就是文档。它把我带到了这个页面:

https://developers.google.com/youtube/v3/determine_quota_cost

现在,它包含了各种 Youtube Data API 资源(LiveChatMessages 资源除外)的所有配额信息。具有讽刺意味的是,顶部的文字说:

从技术上讲,YouTube 直播 API 方法是 YouTube 数据 API 的一部分,对这些方法的调用也会产生配额成本。因此,表中还列出了用于直播的 API 方法。

然而,该表甚至没有提及有关 LiveStreaming API 的任何内容。现在,我只是忽略了这一点,并从所有其他方法的上下文中假设它只产生了一个配额。

当时我在大约 500 名观众的中等规模流上运行我的应用程序,配额用完的时间比我预期的要短。现在,我不确定我是否正确理解了配额成本,或者 LiveChatMessages.list 方法具有完全不同的配额系统。

但我的应用每 5 秒查询一次 LiveChatMessages.list 方法。这意味着每分钟会产生 12 个配额成本,每小时会产生 720 个配额成本。由于我的配额限制为 10,000。我认为它能够处理超过 13 小时的直播,而不会出现配额上限。但取而代之的是,在配额上限之前只有大约几个小时。

无论如何,希望 youtube 工程师看到这一点并可以告诉我 LiveChatMessages.list 方法的配额机制是什么样的,因为文档并没有真正提到它。

标签: youtubeyoutube-apiyoutube-data-apiyoutube-livestreaming-api

解决方案


简短的回答

LiveChatMessages.list根据我的计算,一个请求消耗的配额点数是 5 点。

解释

5 点请求成本基于对一天 API 访问的总查询成本的反算。一个示例 YouTube 应用程序会定期查找最新的直播并从聊天中检索所有实时消息。运行一天后,访问google cloud platform quotas 部分并确定YouTube Data API v3服务的Queries per day配额。此截图显示当前每日配额的使用量为 8,180:

2

现在,访问YouTube API 指标,我们可以按类型获取 API 调用的明细:

电话号码 服务调用类型
45 youtube.api.v3.V3DataLiveBroadcastService.List
1,627 youtube.api.v3.V3DataLiveChatMessageService.List

45 + 1,627 = 8,180 怎么算?聊天消息列表请求的 5 分因素:

8,180 个配额点 = 5 x(1627 个消息列表请求)+ 1 x(45 个广播请求)


Youtube API 10,000 点配额的实际限制

正如我在问题跟踪器中指出的那样,这个限制似乎很不错。对于通过每 1 秒发出一个请求来与实时聊天交互的应用程序:

(10,000 分)/(5 分/请求)/(1 请求/秒)/(60 分钟/小时)= 33 分钟

考虑极端的边界情况:如果直播 24 小时/天,配额可以支持多少实时聊天请求?

(5 分/请求)/(10,000 点/天)*(24 小时/天)*(3600 秒/小时)= 43.2 秒/请求


推荐阅读