Google YouTube API v3 Бросок 503 бэкэнд-ошибок

Я работаю над приложением, которое сбрасывает песни с определенных веб-сайтов и программно «Любит» их на YouTube через API Youtube Google. Чтобы получить идентификаторы видео, которые я ищу, я выполняю поиск по Google с именем исполнителя и песни и анализирую результаты. Этот процесс отлично работает и возвращает действительные идентификаторы видео (я проверил их вручную). Когда я сталкиваюсь с проблемами, это код, который у меня есть для «Like» ing что-то на основе идентификатора видео, который по существу копируется непосредственно из Google Python на YouTube API:

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"> 

Поиск на форумах google dev показывает, что это может быть проблемой на стороне сервера, но я не уверен в своей конкретной ситуации. Кто-нибудь видит, что может быть неправильным?

EDIT: Я использовал это приложение за последние несколько дней, и, похоже, он работает несколько прилично; всего 503 ошибки … Однако на данный момент он обычно выполняет только один запрос API за сеанс. Когда я впервые столкнулся с ошибкой, он делал партию около 6. Есть ли что-то, что происходит при выполнении пакетных запросов, которые я должен учитывать?

Это не позволит мне прокомментировать ваш вопрос, я действительно не считаю это ответом, но, возможно, просто что-то для рассмотрения. Когда-то я работал над проектом, где у меня был список CSV, полный URL-адресов YouTube. Я хотел поместить заголовок видео рядом с URL-адресом в моем списке CSV. Учитывая, что название страницы было названием видео, я использовал URLLIB, чтобы захватить страницу из URL-адреса в списке, захватить заголовок, поместить его в мой список и пропустить следующий, и следующий, и т. Д. В любом случае, я получил только частичные результаты! Только что-то вроде половины из них работало. Ну, оказывается, я слишком быстро бил youtube с URLLIB, и их серверы должны были меня дребезжать или что-то в этом роде, я реализовал таймер 5-15 секунд и получил разные результаты. Я сделал 15 секунд между каждым видео, и мне удалось получить каждый заголовок страницы. Теперь предоставил вам использование API-интерфейса youtube, о котором я ничего не знаю, но, возможно, вызовы на данные youtube через их API тоже так же дросселируются? Я просто плюнул сюда, и сожалею, что разместил это как ответ, но я не могу найти кнопку комментария!

Изменить. Чтобы попытаться сделать это более похоже на ответ, попробуйте использовать модуль времени для сна между вызовами API.

 while 0 == 0 likeVideo(youtube, video_id) time.sleep(15) 

Надеюсь, это поможет, или, по крайней мере, кто-то другой. Удачи!