【发布时间】:2017-02-07 17:35:44
【问题描述】:
我创建了一个网站,该网站使用 YouTube 数据 API 来获取选定用户的 YouTube 数据。这对我来说一直很有效,但现在的流量已经达到嵌入 YouTube 图片不再是 100% 可靠的水平。
我使用 YouTube Data API V3 来获取 YouTube 横幅图像的图像 URL,然后将其添加为现有 <img> 元素的 src 属性。
由于该网站的流量非常大(主要是 500-3000 名实时用户),当我的服务器发送到许多(图像)GET 请求时,YouTube 图像服务器(例如:https://yt3.ggpht.com)开始返回 403 错误。错误如下所示:
- 这是一个错误。
您的客户端无权从此服务器获取 URL https://yt3.ggpht.com/Xs3rhrNjuGoNnd6aXPdZqdfiOIp5EbvN9-PYSaP8xTY1cx6Ced5No6sHNZupNrQmsidY2W-X=w2560-fcrop64=1,00005a57ffffa5a8-nd-c0xffffffff-rj-k-no。 (客户端IP地址:xx.xx.xxx.xxx)
超出速率限制这就是我们所知道的。
从超出此限制的那一刻起,我的网站在一段时间内(来自 YouTube 图像服务器)没有显示任何图像,并且在 x 分钟后超出的限制被重置,图像再次工作。我想防止这种情况发生,因为 YouTube 横幅图片对我网站的用户体验很重要。
我的第一个问题:有谁知道这个 YouTube 图片的速率限制的确切数字是多少? X 时间内可以完成多少个请求?
我的第二个问题:有谁知道防止触发此错误并仍向每个用户提供 YouTube 图片的解决方案?
我有一些自己的理论,但它们会对我的服务器产生很大影响:
- 由于速率限制绑定到 IP 地址,我可以使用某种负载平衡器在多个 IP 上运行我的网站。
- 我可以在第一次请求图像时将图像保存到我的服务器作为缓存机制。当图像再次被请求时,我可以从我自己的服务器上提供它,这样可以防止超出限制。为了防止更新的 YouTube 图片不显示,我必须每 X 小时删除一次图片。
我宁愿不这样做,因为这两种理论都会对服务器负载产生很大影响。
提前感谢您分享您的知识!
彼得
【问题讨论】:
-
这里有同样的问题。我注意到 SocialBlade 以与购买相同的方式加载图像而没有问题。我不明白为什么会这样……有什么建议吗?
-
编辑:SocialBlade 也确实遇到了同样的问题
标签: limit youtube-data-api rate