Как искать видео на YouTube по определенному подмножеству каналов?

#youtube-api #youtube-data-api

Вопрос:

Я хочу получить список всех видео, связанных с определенным поисковым запросом, из подмножества каналов. Подмножество каналов представляет собой:

Например, если я ищу термин force , я хочу, чтобы в результатах появились все видео на YouTube, связанные с этим термином поиска, из вышеупомянутых 3 каналов.

Как я могу это сделать, используя Search.list конечную точку API данных YouTube? Аргумент в пользу author упомянутого в видео объяснителя, кажется, устарел.

Ответ №1:

Используя Search.list конечную точку API, вы получаете в свое распоряжение следующий параметр запроса:

channelId (строка)

channelId Параметр указывает, что ответ API должен содержать только ресурсы, созданные каналом.

Примечание. Результаты поиска ограничены максимум 500 видео , если в запросе указано значение channelId параметра и установлено значение параметра типа video , но при этом не задан один из фильтров forContentOwner, forDeveloper или forMine.

Учитывая приведенную выше спецификацию, вам придется звонить Search.list три раза, передавая каждому вызову один из идентификаторов интересующих вас каналов.

Обратите внимание , что ни одно из имен пользователей канала minutephysics AsapSCIENCE и khanacademy является допустимым идентификатором канала, но это легко разрешимо:

 $ python3 youtube-search.py --user-name minutephysics
UCUHW94eEFW7hkUMVaZz4eDg

$ python3 youtube-search.py --user-name AsapSCIENCE
UCC552Sd-3nyi_tk2BudLUzA

$ python3 youtube-search.py --user-name khanacademy
UC4a-Gbdw7vOaccHmFo40b9g
 

Выше я использовал свой общедоступный (лицензированный MIT) скрипт Python 3 youtube-search.py ; этот скрипт способен искать в API пользовательские URL-адреса и соответственно запрашивать в API имена пользователей.

Обратите youtube-search.py внимание, что для этого требуется передать действительный ключ API в качестве аргумента параметра командной строки --app-key или, в противном случае, передать в качестве переменной среды YOUTUBE_DATA_APP_KEY . (Используйте опцию командной строки --help для получения краткой справочной информации.)