YouTube API: знакомство, идентификатор канала по идентификатору видеоролика

Nov 20, 2022 03:28

Для тех, кто не в курсе: к какому-нибудь каналу ютуба можно обратиться десятком разных способов. Совсем недавно появился еще один - псевдонимы (по-английски «handles»). Когда какие-то из этих способов глючат (или банально просто пропадают; например, псевдоним канала можно поменять...), приходится обращаться к каналу главным способом - через его идентификатор (по-английски «channel id»).

Обращение к каналу ютуба через идентификатор канала, пример:

https://www.youtube.com/channel/UCgnzawz9yCKbHBtikVqlaVg

Как видно, здесь всё довольно просто: для обращения к каналу по его идентификатору сначала следует ввести часть URL-адреса https://www.youtube.com/channel/, а затем идентификатор канала (в вышеприведенном примере это последовательность UCgnzawz9yCKbHBtikVqlaVg, состоящая из 24 символов, которая обычно начинается двумя символами UC).

Когда у одного канала на ютубе, который я смотрю, засбоило обращение по псевдониму, я решил узнать идентификатор канала, чтобы обращаться к каналу по нему, но узнать этот идентификатор оказалось не так-то просто. Зачастую этот идентификатор можно отыскать, поизучав разные пункты меню целевого канала или просмотрев исходный код страниц канала. Однако, этот способ ненадежен, так как ютуб, как и всякий быстро развивающийся веб-сервис, часто меняет (улучшает, дописывает, исправляет) исходный код страниц веб-сервиса, меню страниц и так далее. Способ, которым вы совсем недавно находили в исходном коде страниц канала его идентификатор, сегодня уже может перестать действовать.

В такой ситуации более надежный способ узнать нужную информацию о канале ютуба (или другие данные, которые хранит ютуб) - это использование API ютуба. (API ютуба тоже меняется с развитием ютуба, но он меняется реже, чем исходный код страниц этого веб-сервиса, и его изменения лучше документированы. Сейчас доступен API третьей версии.)

Для тех, кто не знает, что такое «API» в программировании: API - это набор функций, объектов, переменных и так далее; обычно программа (в нашем случае - веб-сервис) предоставляет с помощью этого набора доступ извне к своим возможностям, к своим данным для внешних пользователей (программ или людей). Аббревиатура «API» расшифровывается как «Application Programming Interface» (интерфейс для работы с программой [приложением] извне).

Тут следует понимать две вещи. Во-первых, данный пост не планируется как всеохватывающий учебник или справочник, это только знакомство с API ютуба, тут о многом, относящемся к теме, сказано не будет. Во-вторых, следует иметь в виду, что API никогда не предоставляет доступ ко всем возможностям программы (в нашем случае - веб-сервиса ютуба), он даже не предоставляет доступ к большинству этих возможностей. В случае ютуба пользователь его API получает жалкие крохи с барского стола (впрочем, это верно для API почти всех веб-сервисов).

Получение идентификатора канала по идентификатору видеоролика с помощью API ютуба

Взаимодействие с API ютуба можно вести множеством разных способов, как из программ, написанных на разных языках программирования, так и вручную, через браузер. Тут я покажу взаимодействие через браузер (у меня «Microsoft Edge» на движке «Chromium», но выбор браузера неважен, можно использовать любой современный браузер).

Для примера я взял следующий видеоролик на ютубе:

https://www.youtube.com/watch?v=t6r2-_5QWm4

В этом URL-адресе видеоролика на ютубе идентификатором видеоролика является последовательность символов t6r2-_5QWm4. Думаю, понятно, что в других случаях идентификатор видеоролика можно получить точно так же, это последовательность символов в URL-адресе видеоролика на ютубе, которая является значением параметра v, то есть располагается после символов v=.

При попытке открыть из этого видеоролика канал, на котором он опубликован, получаем следующий URL-адрес:

https://www.youtube.com/@musiccollection9064

Так оформляется ссылка на канал ютуба с использованием его псевдонима (handle), о появлении которых на ютубе я уже упоминал в начале поста. Как видно из вышеприведенного примера, ссылка на канал ютуба с использованием псевдонима оформляется соединением части URL-адреса https://www.youtube.com/ и псевдонима конкретного канала на ютубе (в данном случае - @musiccollection9064). Псевдоним канала может содержать разное количество символов, но начинается на символ @. Псевдонимы указываются на главной странице канала на ютубе под названием канала. Псевдоним канала и идентификатор канала - это разные вещи, не следует их путать.

Обращение к API ютуба может быть осуществлено через отправку HTTP-запроса на определенный URL-адрес, после чего оттуда будет получен HTTP-ответ либо с данными в формате JSON, либо сообщение об ошибке.

Вот как выглядит начало URL-адреса для обращения к API ютуба, я видел использование двух вариантов:

https://youtube.googleapis.com/youtube/v3/
https://www.googleapis.com/youtube/v3/

Переход по двум вышеприведенным URL-адресам не даст результата, это лишь начало нужного URL-адреса. Продолжение URL-адреса зависит от ресурса, данные которого мы хотим получить. Справочник по API ютуба можно найти по следующему адресу:

https://developers.google.com/youtube/v3/docs

В нашем случае мы хотим получить сведения о видеоролике, поэтому следует использовать ресурс videos. Тут подробнее:

https://developers.google.com/youtube/v3/docs/videos

Для получения данных из этого ресурса удлиняем наш URL-адрес на название ресурса:

https://www.googleapis.com/youtube/v3/videos

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

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=t6r2-_5QWm4&key=API_KEY

В вышеприведенном URL-адресе я использовал три параметра:

- part со значением snippet;
- id со значением t6r2-_5QWm4 (идентификатор видеоролика, полученный выше);
- key.

Значение API_KEY, которое я указал выше для параметра key - это не настоящее значение, а заглушка. Вместо него следует вписать значение своего ключа, для получения которого следует выполнить определенную процедуру. Это значение ключа представляет собой довольно длинную последовательность символов, которая используется для аутентификации и авторизации пользователя. Получение этого ключа я собираюсь описать в отдельном посте.

Думаю, из вышеописанного должно быть понятно, что компания «Google», владеющая ютубом, не позволяет всем бесконтрольно пользоваться API ютуба. Для использования многих функций API ютуба придется завести учетную запись (аккаунт) Google или использовать уже имеющуюся. Я пока подробно не разбирался, но, насколько я знаю, часть функций API доступна за деньги, а часть бесплатна. Для использования вышеописанного URL-адреса оплаты не требуется, нужно лишь завести учетную запись Google, зарегистрироваться там в качестве разработчика и создать в своей учетной записи ключ API_KEY. Естественно, этот ключ нельзя никому показывать, так как он служит в качестве своеобразного пароля. Можно заводить множество таких ключей, вводить для них разнообразные условия работы, перевыпускать их и так далее.

Значение параметра part регулирует форму ответа API ютуба на запрос. В вышеописанном случае я запросил ответ в виде объекта типа snippet. Этот объект имеет следующие свойства:

- дата публикации видеоролика;
- идентификатор канала, на котором опубликован данный видеоролик;
- название видеоролика;
- описание видеоролика;
- сведения о заглавных картинках (thumbnails) видеоролика в разных размерах;
- название канала, на котором опубликован данный видеоролик;
- список ключевых слов (tags);
- идентификатор категории видеоролика;
- является ли видеоролик действующей трансляцией (стримом);
- язык названия и описания видеоролика по умолчанию;
- локализованные (переведенные на другой язык) название и описание видеоролика;
- язык аудиопотока видеоролика.

После ввода вышеприведенного URL-адреса в адресную строку браузера я получил в ответ от API ютуба текстовый файл в формате JSON, содержащий объект типа snippet со сведениями об указанном в запросе видеоролике. В этих сведениях я нашел нужное мне свойство:

"channelId": "UCgnzawz9yCKbHBtikVqlaVg"

В принципе, пользоваться API ютуба легко. Главная сложность - получить свой ключ API_KEY.

Видео, Инструмент, Образование, Сайтостроение, Программирование

Previous post Next post
Up