我正在开发一个应用程序,它可以从某些网站上抓取歌曲,并通过 Google 的 Youtube API 以编程方式在 youtube 上“喜欢”它们。为了获得我正在寻找的视频 ID,我使用艺术家和歌曲名称执行谷歌搜索并解析结果。此过程运行良好并返回有效的视频 ID(我已经手动测试过它们)。我遇到问题的地方是我基于视频 ID“点赞”的代码,它本质上是直接从谷歌的 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
但是,我的应用程序抛出了这个错误:
apiclient.errors.HttpError: <HttpError 503 when requesting https://www.googleapis.com/youtube/v3/playlistItems?alt=json&part=snippet returned "Backend Error">
通过谷歌开发论坛搜索显示这可能是谷歌的服务器端问题,但我不确定我的具体情况。任何人都看到什么可能是错的?
编辑:过去几天我一直在使用这个应用程序,它似乎工作得还不错;很少有 503 错误...但是,此时通常每个会话只执行一个 API 请求。当我第一次遇到错误时,它正在执行大约 6 个批处理。在执行批处理请求时是否发生了我应该考虑的问题?