私は、特定のWebサイトから曲を取得し、GoogleのYoutubeAPIを介してプログラムでYouTubeでそれらを「いいね」するアプリケーションに取り組んでいます。探しているビデオIDを取得するために、アーティストと曲のタイトルを使用してGoogle検索を実行し、結果を解析します。このプロセスは正常に機能し、有効なビデオIDを返します(手動でテストしました)。問題が発生したのは、ビデオIDに基づいて何かを「いいね」するためのコードです。これは基本的にGoogleのYouTubeAPIPythonの例から直接コピーされたものです。
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エラー...ただし、この時点では、通常、セッションごとに1つのAPIリクエストのみを実行しています。私が最初にエラーに遭遇したとき、それは約6のバッチを実行していました。私が説明する必要があるバッチ要求を実行するときに何かが起こりますか?