Примеры запросов API

На этой странице показаны примеры запросов к API данных YouTube. Вы используете API данных YouTube для извлечения ресурсов YouTube, таких как видео, каналы и плейлисты, и управления ими. Каждый пример ссылается на Google API Explorer и заполняет его, чтобы вы могли выполнить пример и увидеть ответ.

Информацию о загрузке контента с помощью API данных YouTube см. в разделе Возобновляемая загрузка .

Обзор

Для наглядности в примерах на этой странице показаны отличительные элементы каждого запроса и сокращен базовый 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 API Explorer право выполнять запросы YouTube Data API от их имени. (Подробные сведения об авторизации доступа к данным частного канала см . в разделе Реализация аутентификации OAuth 2.0 .) После установления связи с обозревателем API нажмите кнопку Авторизовать запросы с помощью кнопки OAuth 2.0 . Этот шаг разрешает обозревателю API делать запросы от имени владельца. Вы также выбираете область авторизации, которая определяет типы запросов, которые может выполнять обозреватель API.

Ответом на каждый запрос является JSON- представление ресурса YouTube. Параметр part в запросе указывает, какие части ресурса включаются в ответ. Параметр определяет одно или несколько свойств ресурсов верхнего уровня (невложенных), которые должны быть включены в ответ. Например, некоторые части видеоресурса :

  • фрагмент
  • содержаниеДетали
  • игрок
  • статистика
  • положение дел

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

Получить информацию о канале

Этот запрос использует метод 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 добавляет все загруженные видео в плейлист, связанный с каналом. Чтобы получить список загруженных видео, вы запрашиваете список воспроизведения «uploads», возвращенный в ответе, показанном выше, для информации о канале , используя метод playlistItems.list для получения видео в этом списке воспроизведения.

Прежде чем выполнять следующий пример запроса в Google API 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, вы используете API YouTube Analytics . На странице Sample API Requests показано, как получить стандартные отчеты из YouTube Analytics.

Метод search.list позволяет искать видео, каналы или плейлисты YouTube, соответствующие заданным критериям. Вы можете выполнять поиск по свойствам видео, ключевым словам или темам (или их комбинации), а также сортировать результаты по таким факторам, как дата создания, количество просмотров или рейтинг.

Как и другие запросы API данных YouTube, метод search.list возвращает JSON-представление ресурса YouTube. Однако, в отличие от других ресурсов 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}

Видео на определенную тему

Этот запрос выполняет поиск по ключевым словам видео об API данных YouTube, которые включают субтитры.

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}

Поиск плейлистов или каналов

Поиск не ограничивается видео. Вы также можете искать плейлисты или каналы. Этот запрос извлекает плейлисты, соответствующие ключевому слову «футбол».

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}

Создание и обновление ресурсов

Все запросы, которые мы рассмотрели до сих пор, используют метод HTTP GET для получения данных YouTube. API данных YouTube также предлагает методы, использующие HTTP POST для создания или обновления ресурсов YouTube, таких как видео, плейлисты или каналы. Следующие запросы содержат примеры.

Методы POST включают Request body , которое представляет собой JSON-представление создаваемого или обновляемого ресурса. Вы можете создавать представления JSON в Google API Explorer с помощью интерактивного инструмента.

Создать подписку

Этот запрос подписывает аутентифицированного пользователя на канал 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
      }
   }