首页 > 解决方案 > 在开发聊天机器人时,处理 YouTube 数据 API 配额的最有效方法是什么?

问题描述

我目前正在为一个特定的 YouTube 频道开发一个聊天机器人,它已经可以从当前活动的实时聊天中获取消息。但是我注意到我的配额使用量猛增,所以我冒昧地计算了我的配额成本。

我的 API 调用目前看起来像这样https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=some_livechat_id&part=snippet,authorDetails&pageToken=pageTokenIfProvided,它使用了 5 个单位。我通过运行一个 API 调用并比较之前和之后的配额使用情况来检查这一点(抱歉,如果这不准确)。响应包含pollingIntervalMillis设置为5086毫秒。目前,我的机器人将该时间间隔添加到当前日期时间,并在该时间安排下一次获取(使用 Celery),因此它目前以 4-6 秒的速率获取消息。我会冒昧地等待 6 秒。

计算我的 API 配额将导致每天使用 72.000 个单位:

10 requests per minute * 60 minutes * 24 hours = 14.400 requests per day
14.400 requests * 5 units per request = 72.000 units per day

这意味着,如果我将pollingIntervalMillis用作请求频率的指导方针,我可以通过运行机器人 3 小时 20 分钟轻松达到 10.000 个单位的最大配额。为了不通过仅获取聊天消息来耗尽配额,我需要每分钟运行 1 次 API 调用(大约 1,3889 次)。这对于聊天机器人来说是非常不可行的,因为这仅用于获取消息,甚至不向聊天发送任何消息。

所以我的问题是:是否有一种更有效的方式来获取不会占用太多配额的聊天消息?还是我只能通过申请配额延长来解决这个问题?如果这只能通过配额延长来解决,我需要可靠地要求多少?大约 10 万个单位?更?

我也在问自己,尽管有成千上万的用户使用他们的 API 客户端,但像 Streamlabs Chatbot(以前称为 AnkhBot)这样的东西是如何在不达到配额限制的情况下实现这一点的,他们的配额可能必须达到数百万或数十亿。

另一个问题是,如果机器人仍处于这种“早期”开发状态,我将如何实际填写表格?

标签: youtube-apichatbotquota

解决方案


你几乎一针见血。像 Streamlabs 这样的服务由大公司拥有,在他们的例子中是罗技。他们不仅有钱花在增加 API 配额等事情上,而且还与谷歌等公司建立了专业关系,以降低单位成本。

至于效率,API 成本很容易在文档中找到,但对于您发现的实时聊天,您将在每次点击中使用 5 个单位的 API。降低通话总成本的唯一方法是减少通话频率。虽然每分钟一次显然过长,但每 15-18 秒一次可以降低 API 配额增加的总体成本,同时使聊天机器人具有足够的响应能力。

当然,这一切都取决于您对数据的期望用途,但如果您仍在业余爱好者使用领域实施机器人,这仍然是一个建议。


推荐阅读