Добавление видео в список воспроизведения – ошибка YouTube API SERVICE_UNAVAILABLE во время выполнения пакетного HTTP-заPython

Программы на Python
Anonymous
Добавление видео в список воспроизведения – ошибка YouTube API SERVICE_UNAVAILABLE во время выполнения пакетного HTTP-за

Сообщение Anonymous »

Я экспериментировал с клиентом API YouTube уже несколько дней, и мне удалось загрузить отдельные видео в плейлист YouTube. Сейчас я пытаюсь добавить несколько видео в список воспроизведения с помощью пакетных HTTP-запросов (

Код: Выделить всё

new_batch_http_request()). Я знаю, что альтернативой является просто циклический просмотр списка видео и выполнение для каждого отдельного запроса, но я читал, что могу сократить использование квоты с помощью пакетных запросов. Я читал противоречивые мнения о том, правда ли это на самом деле, но я надеюсь дойти до момента, когда смогу увидеть это сам.
Проблема, с которой я столкнулся. заключается в том, что при выполнении пакетного запроса фактически добавляется только 1 видео, а остальные возвращают исключение:



One< /em> видео в списке будут последовательно добавляться, и даже не обязательно будут первым или последним в используемом списке.
Используемый код:from googleapiclient.discovery import build
from authentication import authenticate

credentials = authenticate()
playlist_id = "PAAqJtw5-yz3jRraaH13HlxhnjE4hw_wDu" # dummy ID
video_ids = ["TWTX1T3yxzs", "1P1BSm_4FJg", "Pyx_FIYa7EE"] # dummy IDs

youtube = build("youtube", "v3", credentials=credentials)

batch_request = youtube.new_batch_http_request()

def callback(request_id, response, exception):
if exception is not None:
print(f"Error adding video {request_id}: {exception}")
else:
video_id = response['snippet']['resourceId']['videoId']
print(f"Added video {video_id} to playlist {playlist_id}")

for video_id in video_ids:
req_body = {"snippet": {"playlistId": playlist_id,
"resourceId": {
"kind": "youtube#video",
"videoId": video_id}
}}
request = youtube.playlistItems().insert(part="snippet", body=req_body)
print(f"Adding video {video_id} to request...")
batch_request.add(request, callback=callback)

print("Executing request...")
batch_request.execute()
Я думал, что это может быть проблема с квотой, но это не так. Я пытался искать различные варианты конкретной ошибки, но ничего не нашел. Я не уверен, является ли это ограничением playlistItems().insert при использовании пакетных запросов.
EDIT:
Что касается предложенного вопроса, который уже был задан: Спасибо за предложение, но упомянутый вопрос касается конкретно ошибок в квотах, о чем свидетельствуют как текст вопроса, так и принятый ответ. Это также касается загрузки видео, а не добавления видео в плейлисты.
Как упоминалось выше, проблема, с которой я столкнулся, не связана с квотой. Я вполне укладываюсь в пределы квоты и могу повторно запустить сценарий, и при каждой итерации видео будет загружаться в список, хотя и одно. Это исключает возможность ограничения квот. Полученная ошибка также не связана с квотой (SERVICE_UNAVAILABLE), и консоль подтверждает, что не достигнуты пределы квоты (10 000 запросов в день). Кроме того, код в предложенном вопросе просто перебирает файлы в папке и создает отдельные запросы для каждой загрузки, что съедает квоту (как указано в принятом ответе), и это та самая причина, по которой я Я использую пакетные запросы, что привело к моему вопросу. На самом деле я не ожидаю, что проблемы будут возникать в ходе отдельных запросов.
РЕДАКТИРОВАТЬ:
Последний отчет о квотах за сегодняшний день показывает квоту. не был достигнут: снимок экрана.
EDIT:
Я только что подтвердил, что пакетные HTTP-запросы на самом деле не Это не поможет сократить использование квот. Сегодня я начал с новой квоты, которая сбрасывается каждый день, сделал один пакетный запрос, содержащий 3 вызова API, и посмотрел консоль Google. Было использовано 150, что соответствует стоимости 50 за каждое видео. Я повторил то же упражнение еще раз, и использование увеличилось до 300.
Таким образом, хотя технически я мог бы просмотреть список видео и сделать HTTP-запросы для каждого отдельного видео без какого-либо эффекта Что касается использования квот, то он по-прежнему является предпочтительным методом снижения накладных расходов, и было бы интересно узнать, как заставить его работать правильно

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-executi

Вернуться в «Python»