#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 ).