На этой странице приведены примеры запросов к YouTube Data API. YouTube Data API позволяет получать и обрабатывать ресурсы YouTube, такие как видео, каналы и плейлисты. Каждый пример связан с Google APIs Explorer, в котором можно выполнить пример и посмотреть ответ.
Информацию о том, как загружать контент с помощью YouTube Data API, вы найдете в статье Возобновляемая загрузка.
Обзор
Для наглядности в примерах на этой странице показаны отличительные элементы каждого запроса и сокращен базовый URL хоста, обрабатывающего запросы Data API (https://www.googleapis.com/youtube/v3). Чтобы выполнить запрос вне контекста примеров, необходимо указать полный URL.
Например, на этой странице приведен следующий образец запроса:
GET {base-URL}/channels?part=contentDetails &mine=true
Полный URL для этого запроса выглядит следующим образом:
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails &mine=true
Некоторые запросы позволяют получить данные, доступные только владельцу канала YouTube, например список подписчиков. Для этого владелец канала должен предоставить Google APIs Explorer право выполнять запросы к YouTube Data API от его имени. Подробнее о том, как авторизовать доступ к закрытым данным канала, рассказывается в разделе Реализация аутентификации OAuth 2.0. Перейдя в API Explorer, нажмите кнопку Authorize requests using OAuth 2.0 (Авторизовать запросы с помощью OAuth 2.0). На этом шаге вы предоставляете APIs Explorer разрешение отправлять запросы от имени владельца. Также можно выбрать область авторизации, которая определяет типы запросов, которые может выполнять API Explorer.
Ответ на каждый запрос представляет собой JSON-представление ресурса YouTube. Параметр part в запросе указывает, какие части ресурса должны быть включены в ответ. Параметр определяет одно или несколько свойств ресурса верхнего уровня (не вложенных), которые должны быть включены в ответ. Например, ресурс video содержит следующие части:
- snippet
- contentDetails
- Плеер
- статистика
- статус
Все эти части являются объектами, содержащими вложенные свойства. Их можно рассматривать как группы полей метаданных, которые сервер API может (или не может) извлечь. Поэтому в параметре part необходимо указать компоненты ресурсов, которые действительно используются в вашем приложении. Подробнее о том, как начать работу с YouTube Data API…
Получение информации о канале
Этот запрос использует метод channels.list для получения информации о каналах, принадлежащих авторизованному пользователю.
GET {base_URL}/channels?part=contentDetails &mine=true
Ответ на этот запрос содержит идентификатор канала и contentDetails для канала аутентифицированного пользователя. contentDetails включает несколько автоматически созданных плейлистов, связанных с каналом. Для многих последующих запросов требуется идентификатор канала или один из идентификаторов плейлистов, поэтому важно их записать.
{
"id": {CHANNEL_ID},
"kind": "youtube#channel",
"etag": etag,
"contentDetails": {
"relatedPlaylists": {
"likes": {LIKES_PLAYLIST_ID},
"favorites": {FAVORITES_PLAYLIST_ID},
"uploads": {UPLOADS_PLAYLIST_ID},
"watchHistory": {WATCHHISTORY_PLAYLIST_ID},
"watchLater": {WATCHLATER_PLAYLIST_ID}
},
"googlePlusUserId": string
},
}Загруженные видео и автоматически созданные плейлисты
YouTube добавляет все загруженные видео в плейлист, связанный с каналом. Чтобы получить список загруженных видео, запросите плейлист "Загрузки", возвращенный в ответе, показанном выше для информации о канале, используя метод playlistItems.list для получения видео в этом плейлисте.
Прежде чем выполнять приведенный ниже пример запроса в Google APIs Explorer, замените {UPLOADS_PLAYLIST_ID} идентификатором плейлиста из предыдущего запроса.
GET {base_URL}/playlistItems?part=contentDetails &playlistId={UPLOADS_PLAYLIST_ID}
Обратите внимание, что значение "id" для каждого возвращенного элемента – это его идентификатор playlistItem. Идентификатор видео для элемента плейлиста – это videoId в части contentDetails.
Вы можете получить списки избранных видео, понравившихся видео, истории просмотра или видео, добавленных в список "Посмотреть позже", используя приведенный выше запрос и подставив соответствующий идентификатор плейлиста из ответа с информацией о канале.
Плейлисты, созданные пользователями
В этом запросе используется метод playlists.list, который позволяет получить плейлисты, связанные с каналом, прошедшим аутентификацию. Обратите внимание, что этот запрос не возвращает автоматически созданные плейлисты, которые включены в информацию о канале (загрузки, история просмотра и т. д.). Он извлекает только плейлисты, созданные пользователями.
GET {base_URL}/playlists?part=snippet &mine=true
Получив идентификатор плейлиста, вы можете извлечь из него объекты с помощью запроса, показанного в предыдущем разделе.
Вы можете запрашивать информацию об общедоступных плейлистах канала без аутентификации. При отправке запроса без аутентификации необходимо включить аргумент key, в котором указан уникальный ключ API для приложения, отправляющего запрос. Например, этот запрос возвращает плейлисты, связанные с каналом GoogleDevelopers.
GET {base_URL}/playlists?part=snippet &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw &key={YOUR_API_KEY}
Получение подписок
Ресурс subscription определяет связь между пользователем YouTube (подписчиком) и каналом. Метод subscriptions.list позволяет получить список подписчиков определенного канала или список подписок определенного пользователя в зависимости от того, какие параметры вы включите в запрос.
Подписчики канала
Этот запрос позволяет получить список подписчиков канала, для которого выполнена аутентификация.
GET {base_URL}/subscriptions?part=snippet &mySubscribers=true
Подписки пользователей
Чтобы посмотреть, на какие каналы подписан пользователь, можно использовать тот же метод, что и для просмотра подписчиков (subscriptions.list). В этом запросе используется параметр mine, чтобы получить список каналов YouTube, на которые подписан аутентифицированный пользователь.
GET {base_URL}/subscriptions?part=snippet &mine=true
Получение данных о действиях пользователей
Ресурс activity содержит информацию о действиях, которые определенный канал или пользователь совершил на YouTube, например загрузил видео или подписался на канал. Метод activities.list позволяет получить список действий, связанных с каналом или пользователем и соответствующих критериям запроса. Например, вы можете получить действия, связанные с определенным каналом, подписками пользователя или его главной страницей YouTube.
Активность за период времени
Этот запрос позволяет получить все действия, которые выполнил аутентифицированный пользователь в апреле 2013 года.
GET {base_URL}/activities?part=snippet,contentDetails &mine=true &publishedAfter=2013-04-01T00%3A00%3A00Z &publishedBefore=2013-05-01T00%3A00%3A00Z
Действия на главной странице
Этот запрос позволяет получить ленту действий, которая показывается на главной странице YouTube аутентифицированного пользователя.
GET {base_URL}/activities?part=snippet,contentDetails &home=true
YouTube Analytics API позволяет получать статистику просмотров, показатели популярности и демографические данные по видео и каналам YouTube. На странице Примеры запросов к API показано, как получать стандартные отчеты из YouTube Аналитики.
Поиск
Метод search.list позволяет искать видео, каналы и плейлисты YouTube, соответствующие заданным критериям. Вы можете искать видео по свойствам, ключевым словам или темам (или по их комбинации), а также сортировать результаты по таким факторам, как дата создания, количество просмотров или рейтинг.
Как и другие запросы к YouTube Data API, метод search.list возвращает представление ресурса YouTube в формате JSON. Однако в отличие от других ресурсов YouTube результат поиска не является постоянным объектом с уникальным идентификатором.
Многие запросы ищут общедоступный контент и поэтому не требуют аутентификации. Среди приведенных ниже примеров только первый требует аутентификации, поскольку в нем запрашиваются "мои" видео. При отправке неаутентифицированного запроса необходимо включить аргумент key, который указывает уникальный ключ API для вашего приложения.
Мои самые популярные видео
Этот запрос позволяет получить все видео авторизованного пользователя и отсортировать их по количеству просмотров в порядке убывания.
GET {base_URL}/search?part=snippet &forMine=true &order=viewCount &type=video
Встраиваемые видео высокого разрешения
Этот запрос позволяет найти видео с определенными свойствами, а именно видео высокого разрешения, которые можно встраивать на другие сайты. Результаты сортируются по рейтингу в порядке убывания.
GET {base_URL}/search?part=snippet &order=rating &type=video &videoDefinition=high &videoEmbeddable=true &key={YOUR_API_KEY}
видео на определенную тему;
Этот запрос выполняет поиск видео о YouTube Data API с субтитрами по ключевым словам.
GET {base_URL}/search?part=snippet &q=YouTube+Data+API &type=video &videoCaption=closedCaption &key={YOUR_API_KEY}
Поиск по темам
Чтобы найти видео на определенную тему, можно использовать не ключевые слова, а темы Freebase. Каналы и видео YouTube содержат объект topicDetails, в котором перечислены идентификаторы тем Freebase, связанных с ресурсом. Поиск по темам более интеллектуален, чем поиск по ключевым словам, поскольку тема Freebase представляет собой все аспекты реального понятия или объекта.
Чтобы выполнить поиск по теме Freebase, сначала нужно получить идентификатор темы с помощью Freebase API. Этот запрос возвращает видео, связанные с темой Freebase для Python, идентификатор которой – /m/05z1_.
GET {base_URL}/search?part=snippet &topicId=/m/05z1_ &type=video &key={YOUR_API_KEY}
Поиск плейлистов или каналов
Поиск не ограничивается видео. Вы также можете искать плейлисты и каналы. Этот запрос позволяет получить плейлисты, соответствующие ключевому слову "soccer".
GET {base_URL}/search?part=snippet &q=soccer &type=playlist &key={YOUR_API_KEY}
Если вы хотите найти каналы о футболе, просто измените параметр type.
GET {base_URL}/search?part=snippet &q=soccer &type=channel &key={YOUR_API_KEY}
Если вы хотите найти весь контент, связанный с футболом (каналы, плейлисты и видео), воспользуйтесь универсальным поиском. Если параметр type не указан, запрос возвращает контент всех типов.
GET {base_URL}/search?part=snippet &q=soccer &key={YOUR_API_KEY}
Создание и обновление ресурсов
Во всех запросах, которые мы рассматривали до сих пор, для получения данных YouTube используется метод HTTP GET. YouTube Data API также предлагает методы, которые используют HTTP POST для создания или обновления ресурсов YouTube, таких как видео, плейлисты или каналы. Ниже приведены примеры запросов.
Методы POST включают Request body – представление JSON ресурса, который создается или обновляется. В Google APIs Explorer можно создать представление JSON с помощью интерактивного инструмента.
Создание подписки
Этот запрос позволяет авторизованному пользователю подписаться на канал GoogleDevelopers. Другими словами, он создает ресурс подписки.
POST {base_URL}/subscriptions?part=snippet
Request body: { 'snippet': { 'resourceId': { 'kind': 'youtube#channel', 'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw' } } }
Как создать плейлист
Этот запрос создает новый общедоступный плейлист.
POST {base_URL}/playlists?part=snippet
Request body: { 'snippet': { 'title': 'New playlist', 'description': 'Sample playlist for Data API', } }
добавление видео в плейлист.
Теперь, когда мы создали плейлист, давайте добавим в него видео. Этот запрос добавляет видео в начало плейлиста ('position': 0).
POST {base_URL}/playlistItems?part=snippet Request body: { 'snippet': { 'playlistId': '{PLAYLIST_ID}', 'resourceId': { 'kind': 'youtube#video', 'videoId': '{VIDEO_ID}' } 'position': 0 } }