【发布时间】:2021-04-15 16:32:12
【问题描述】:
我目前正在为一个特定的 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-api chatbot quota