Google YouTube API v3 抛出 503 后端错误

use*_*661 5 python google-api

我正在开发一个应用程序,该应用程序可以从某些网站抓取歌曲,并通过 Google 的 Youtube API 以编程方式在 YouTube 上“喜欢”它们。为了获取我正在寻找的视频 ID,我使用艺术家和歌曲标题执行 Google 搜索并解析结果。这个过程运行良好并返回有效的视频 ID(我已经手动测试过它们)。我遇到问题的地方是我根据视频 ID 点赞的代码,该代码基本上是直接从 google 的 YouTube API Python 示例中复制的:

def likeVideo(youtube, video_id):
    channels_list_response = youtube.channels().list(
      mine=True,
      part="contentDetails"
    ).execute()

    # Adding a video as a favorite or to the watch later list is done via the
    # same basic process. Just read the list id of the corresponding playlist
    # instead of "likes" as we're doing here.
    liked_list_id = channels_list_response["items"][0]["contentDetails"]["relatedPlaylists"]["likes"]

    body = dict(
      snippet=dict(
        playlistId=liked_list_id,
        resourceId=dict(
          kind="youtube#video",
          videoId=video_id
        )
      )
    )
    youtube.playlistItems().insert(
      part=",".join(body.keys()),
      body=body
    ).execute()

    print "%s has been liked." % video_id
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序抛出此错误:

apiclient.errors.HttpError: <HttpError 503 when requesting https://www.googleapis.com/youtube/v3/playlistItems?alt=json&part=snippet returned "Backend Error">
Run Code Online (Sandbox Code Playgroud)

通过谷歌开发论坛搜索发现这可能是谷歌方面的服务器端问题,但我不确定我的具体情况。有人看到可能出了什么问题吗?

编辑:过去几天我一直在使用这个应用程序,它似乎运行得不错;很少有 503 错误...但是,此时每个会话通常只执行一个 API 请求。当我第一次遇到这个错误时,它正在执行大约 6 个批处理。在执行批处理请求时是否会发生一些我应该考虑的事情?

0xh*_*hes 4

它不会让我评论你的问题,我真的不认为这是一个答案,但也许只是需要考虑的事情。不久前,我正在开发一个项目,其中有一个包含 YouTube 视频 URL 的 CSV 列表。我想将视频标题放在 CSV 列表中的 URL 旁边。鉴于页面的标题是视频的标题,我利用 URLLIB 从列表中的 URL 中抓取页面,抓取标题,将其放入我的列表中,然后循环浏览下一个、下一个等等等。无论如何,我只得到了部分结果!只有大约一半的东西起作用了。事实证明,我使用 URLLIB 访问 YouTube 的速度太快了,他们的服务器一定是限制了我的速度,我实现了 5-15 秒的计时器,并得到了不同的结果。我在每个视频之间播放了 15 秒,并且能够获取每个页面标题。现在允许您使用我一无所知的 youtube API,但也许通过其 API 对 youtube 数据的调用也会以某种方式受到限制?我只是在这里吐槽,很抱歉将其作为答案发布,但我似乎找不到评论按钮!

编辑 - 为了尝试让这看起来更像是一个答案,请尝试利用时间模块在 API 调用之间休眠。

while 0 == 0
  likeVideo(youtube, video_id)
  time.sleep(15)
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助,或者至少对其他人有所帮助。祝你好运!