Ошибка Python при попытке получить данные из youtube api

#python #api #youtube #youtube-api #youtube-data-api

#python #API #YouTube #youtube-api #youtube-data-api

Вопрос:

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

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

добавлена только часть кода, остальное находится в процессе поиска.

 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».

Попытка заставить его напечатать весь фрагмент «snippet» выдает мне все, кроме «tags» И «categoryid»

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

Комментарии:

1. Можете ли вы поделиться, с какой ошибкой вы столкнулись при попытке запустить свой код?

Ответ №1:

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

Для доступа к свойству tags видеоресурса (https://developers.google.com/youtube/v3/docs/videos#snippet.tags []) вы должны выполнить отдельный вызов API для каждого интересующего вас видео в конечной точке Videos (https://developers.google.com/youtube/v3/docs/videos/list ).

Добавление: вы можете упростить вызов API несколько раз в конечной точке Videos для интересующих вас видеороликов, указав эти видеоролики — только в одном вызове API — в id параметра в виде списка идентификаторов видео через запятую (https://developers.google.com/youtube/v3/docs/videos/list#id ).