Ошибка Python при попытке получить данные из API YouTube - PullRequest
1 голос
/ 26 марта 2019

У меня проблема, я пытаюсь заставить Python искать видео через Youtube API, часть кода не работает.Когда я пытаюсь получить теги видео, это выдает мне ошибку.

До сих пор я использовал пример из Google "search_by_keyword".Это сработало хорошо.Однако я немного изменил это.Я хочу, чтобы Python дал мне идентификаторы видео с тегами в этом видео.Я попытался отладить, заставляя его печатать всю часть «фрагмента» таблицы, кажется, что «теги» вообще не найдены в «фрагменте»

, только немного кода было добавлено,остальные работают, находят.

for search_result in search_response.get("items", []):
 if search_result["id"]["kind"] == "youtube#video":
   videos.append("%s (%s)" % (search_result["snippet"]["tags"],
                              search_result["id"]["videoId"]))
print ("Videos:\n", "\n".join(videos), "\n")

На

videos.append("%s (%s)" % (search_result["snippet"]["tags"]

Я ожидаю, что это здесь, чтобы дать мне теги видео, но это только приводит к ошибке отслеживания "keyerror: tags".

Попытка заставить его напечатать всю часть" фрагмента ", дает мне все, кроме" тегов "И" categoryid "

Я думаю, что вопрос сводится к: Где я могу найтиэлемент "tags" в таблице данных?

1 Ответ

2 голосов
/ 27 марта 2019

Согласно документации Google (https://developers.google.com/youtube/v3/docs/search#resource) объект JSON фрагмент , полученный из конечной точки поиска, не содержит тегов . Следовательно, ваш код, получающий исключение KeyError, демонстрирует правильное поведение .

Чтобы получить свойство tags видеоресурса (https://developers.google.com/youtube/v3/docs/videos#snippet.tags[]), необходимо выполнить отдельный вызов API для каждого видео, которое вас интересует, в конечной точке Видео (* 1014). *

Приложение: вы можете облегчить вызов API несколько раз в конечной точке видео для видео, которое вас интересует, указав эти видео - только в одном вызове API - для параметра id в виде запятой разделенный список идентификатор видео s (

https://developers.google.com/youtube/v3/docs/videos/list#id).

...