#youtube-api #youtube-data-api
Вопрос:
Я хочу получить список всех видео, связанных с определенным поисковым запросом, из подмножества каналов. Подмножество каналов представляет собой:
- https://www.youtube.com/user/minutephysics
- https://www.youtube.com/user/AsapSCIENCE
- https://www.youtube.com/user/khanacademy
Например, если я ищу термин 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
для получения краткой справочной информации.)