yt:配额太多近期通话 - Youtube API帮助

时间:2010-01-09 23:35:56

标签: api youtube

我正在使用youtube api从youtube帐户获取内容(使用 只是用户提供...没有用户身份验证)在我们的网站上。 从昨天早上起,我们一直在努力:

<error>
    <domain>yt:quota</domain>
    <code>too_many_recent_calls</code>
</error>

它始于随机发生,但很快,我们就会100%得到此错误。 我尝试了以下quota limits instructions,但我仍然收到错误:

  

如果您收到配额错误,   您可以采取以下几个步骤:

     
      
  • 请求包括您的开发人员密钥和clientID。 我这样做
  •   
  • 确保您的代码执行的操作是由用户启动的。 我知道   此
  •   
  • 在限制查询参数中传递用户的IP地址。 我能   仅传递代理/服务器IP   地址,而不是确切的客户   因为Google AppEngine没有   支持   InetAddress.getLocalHost()。getHostAddress())
  •   
  • 如果您要请求经过身份验证的Feed,请以用户身份登录,而不是以用户身份登录   网站范围的帐户。 我没有使用   认证
  •   

2 个答案:

答案 0 :(得分:6)

我在使用Youtube API + App-Engine时遇到了同样的问题。我将开发人员密钥作为请求的参数传递,以及其他建议的参数(请求URL中的user-ip,developer-key)仍然无法与App Engine一起使用。

似乎开发人员密钥没有通过(虽然POST请求标头中存在X-Gdata-key)。我找到了这个解决方案:

每个YouTubeService实例都具有 developer_key client_id 属性。在创建服务实例时设置此属性(而不是在标题中设置'X-GData-Key'或查询实例的属性)会使 developer_key 成为应用ID: client_id 将在每个请求中发送,并成功接受。

您可以在constructor of YouTubeService for the Java API

中设置这些值

如果您使用的是Python API,则可以直接设置参数如下:

client = gdata.youtube.service.YouTubeService()
    client.client_id = <application_id>
    client.developer_key = <developer_key>

我注意到我的developer_key没有通过检查YouTube API信息中心的统计信息来完成。

答案 1 :(得分:2)

在使用python重新构建youtube api的轮子时,我发现可能导致X-GData-Key无法识别的原因。这回答了@Javierfdr。

简短回答:urllib2正在进行.capitalize().title()并将标题搞乱。

urllib2模块中有大量这些代码。有些是处理程序,有些是RequestX-GData-Key转换为X-Gdata-Key标题为,请注意较低的 d )或X-gdata-key(当大写时)。我不得不构建一个自定义HTTPSHandler和一个Request对象来注释掉这些行。

我不确定他们为什么会这样做,但是一个长篇大论在http://bugs.python.org/issue2275中讨论了这个问题。我猜它没有成为python 2.7。

我尝试了requests library,但它没有用标题搞砸了。万岁:)

只是为了让别人不浪费时间,或者至少知道发生了什么。

- 编辑 -

实际上,我发现RFC个状态标题字段名称不区分大小写,我找不到谷歌没有的任何证据。我对下面的陈述错了,我仍然没有得到任何统计数据:(抱歉误导。

  

更改完所有内容后,我终于看到了YouTube API中的统计信息   仪表板 - 总是想知道为什么到现在为止没有数据。