具有特定ID的GET /视频的HTTP 500(后端错误)

时间:2015-07-07 18:37:38

标签: youtube-api youtube-data-api

寻求Google工程师的支持,因为这显然是一个持久的YouTube API错误。

我正在使用YouTube v3 API搜索视频,并在其他ID中返回“p2hcYliOqic”视频ID。将其提供给/ videos端点始终导致HTTP 500带有“后端错误”消息。这只是一个例子,问题更广泛(我可以找到更多的ID导致这个问题)。以下是请求示例(API键替换为MY_API_KEY):

curl -X GET -H "content-length: 0" -H "host: www.googleapis.com" "https://www.googleapis.com/youtube/v3/videos?id=p2hcYliOqic&part=snippet&key=MY_API_KEY"

响应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "backendError",
    "message": "Backend Error"
   }
  ],
  "code": 500,
  "message": "Backend Error"
 }
}

在其他ID中提供此ID会导致相同的结果,HTTP 500,这是一个严重的问题。我希望YouTube API忽略它无法处理的视频ID,并且不会完全失败请求。如果用户提供了不存在的视频ID,则YouTube API v3只会返回一个空结果(如果至少有一个真正的&“非错误的”ID,则返回非空结果) - 我希望“有问题”的情况也是如此的ID。

1 个答案:

答案 0 :(得分:1)

对于那些面临类似YouTube症状的人(即对具有100个视频ID的/视频的GET请求,由于没有特殊原因而导致“后端错误”失败),这是一个绕道而行。在您的代码中,您需要添加一个处理程序,将这些请求分解为较小的请求并发送它们,直到所有非错误的ID都通过。在这种情况下,我分为3个查询。例如。如果100-vid请求失败(由于“后端错误”,而不是配额问题或API响应中特别注明的其他内容),我将其分解为34-vid,33-vid,33-vid。如果只有一个错误ID,则只有其中一个请求失败,之后我再将其拆分为3个部分。这样,所有非错误的ID都会通过,但这种方法对您的YouTube请求配额来说成本更高(如果请求失败)。