我们的应用程序每天使用 YouTube API 上传数百个视频,但现在出现超出配额的错误

Our application uploads hundreds of videos per day using the YouTube API, but now getting quota exceeded errors

我的应用程序允许用户将他们的 YouTube 帐户 "link" 上传到我们的系统,然后我们允许他们将视频上传到他们的频道,这在某些情况下是自动的,并且他们的 "upload" 操作.我们有数百个视频正在上传,因为我们有成千上万的用户使用我们的系统。

今天,当我们的批量自动上传作业 运行 时,我在我的应用程序中看到了数百个错误。错误是:

quotaExceeded, video upload limit reached.

我的 API 配额非常高(每天 50,000,000,每 100 秒 3,000,000,每个用户每 100 秒 300,000),所以如果视频是 1600 点,我有足够的限制来上传 30,000+ 每个天,每 100 秒 1,800 个视频,每个用户每 100 秒 180+ 个视频。

我看到其他问题暗示 Google 某些新实施的限制只能播放 50 个视频,然后每 15 分钟播放 1 个视频?对于我的配额如此之大的应用程序来说,这是一个非常低的限制!明确地说,我最多看到我的应用程序在一天内处理 1,000 个视频(我的 50,000,000 总配额中的 1,600,000 个点)。

有什么方法可以人为限制 50 个视频,然后每 15 分钟删除 1 个视频?这是我的用户使用一个非常流行的网络应用程序的主要障碍。我可以理解每个用户 50 个视频,然后每 15 分钟 1 个,但我非常怀疑我今天早上的错误是来自一个用户试图一次上传 300 多个视频。我的系统每天只上传他们的 "newest" 个视频,大多数人最多只有 1-10 个视频。数百个是非常罕见的极端情况。

您实际上可以在 Developers Console the available quota for your application. By default, YouTube API have a quota allocation of 1 million units per day as mentioned in Quota usage. If you see that your usage reached your quota limit, you can request additional quota on the Quotas 选项卡中确认。

另请注意,所有 API 请求(包括无效请求)都会产生至少一分的配额成本。您可以使用 Quota Calculator 来估算 API 查询的配额成本。

另一方面,为了有效地使用您的配额,如果您还没有这样做,我建议您在遇到高错误率时实施指数退避。请参阅此 sample code which shows an exponential backoff strategy to resume a failed upload. Also, if applicable, subscribe to Push Notifications,它比 polling-based 解决方案更有效。

查看 documentation 了解有关 PubSubHubbub 回调服务器如何在频道执行以下任何活动时接收 Atom 订阅源通知的更多信息:

  • 上传视频
  • 更新视频的标题
  • 更新视频的描述

希望对您有所帮助!