#python #error-handling #youtube-api #youtube-data-api
Вопрос:
У меня есть скрипт, который просматривает некоторые видео на YouTube и добавляет их в список воспроизведения:
for page in pages:
add_video_to_playlist(youtube,upsert_id,my_playlist)
def add_video_to_playlist(youtube_obj,video_id,yt_pl_id):
request = youtube_obj.playlistItems().insert(
part="snippet",
body={
"snippet": {
"playlistId": yt_pl_id,
#"position": 0,
"resourceId": {
"kind": "youtube#video",
"videoId": video_id
}
}
}
)
try:
response = request.execute()
print(response['snippet']['title'])
except HttpError as err:
return "Error: " str(err)
Периодически я получаю неверный идентификатор видео, и выполнение останавливается с таким сообщением:
googleapiclient.errors.HttpError: <HttpError 404 when requesting https://youtube.googleapis.com/youtube/v3/playlistItems?part=snippetamp;alt=json returned "Video not found.". Details: "Video not found.">
Как я могу распечатать сообщение об ошибке, не выходя из цикла, чтобы продолжить выполнение до следующего видео в цикле?
Комментарии:
1. Замените
except HttpError as err:
наexcept googleapiclient.errors.HttpError as err:
; в противном случае у вас естьfrom googleapiclient.errors import HttpError
оператор где-то на верхнем уровне вашего сценария или даже прямо перед вашимfor page in pages:
циклом.