Реализация: Видео

В следующих примерах показано, как использовать API данных YouTube (версия 3) для выполнения функций, связанных с видео.

Получить загруженные видео канала

В этом примере извлекаются видеоролики, загруженные на определенный канал. Пример состоит из двух шагов:

  • Шаг 1: Получите идентификатор плейлиста для загруженных на канал видео.

    Вызовите метод channels.list , чтобы получить идентификатор плейлиста, содержащего загруженные видео канала. Значение параметра part запроса должно включать contentDetails в качестве одной из частей ресурса channel , которую необходимо получить. В ответе API свойство contentDetails.relatedPlaylists.uploads будет содержать идентификатор плейлиста.

    Существует несколько способов определить канал:

  • Шаг 2: Получите список загруженных видео.

    Вызовите метод playlistItems.list , чтобы получить список загруженных видео. Установите значение параметра playlistId равным значению, полученному на шаге 1. В этом примере значение параметра установлено равным UUK8sQmJBp8GCxrOtXWBpyEA , что представляет собой список видео, загруженных на официальный канал YouTube компании Google.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?
            part=snippet,contentDetails,status
            &playlistId=UUK8sQmJBp8GCxrOtXWBpyEA

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

Чтобы получить список самых популярных видео, вызовите метод videos.list и установите значение параметра chart равным mostPopular . Диаграмма mostPopular включает в себя популярные музыкальные, кино- и игровые видеоролики.

Затем вы можете дополнительно установить следующие параметры:

  • regionCode : Указывает API вернуть список видео для указанного региона. Значение параметра — это код страны в формате ISO 3166-1 alpha-2. Вы можете использовать метод i18nRegions.list для получения списка кодов регионов, поддерживаемых YouTube.
  • videoCategoryId : Определяет категорию видео, для которой следует получить самые популярные видео. Вы можете использовать метод videoCategories.list для получения списка идентификаторов категорий, поддерживаемых YouTube.

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

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17
  

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

В этом примере статистика для списка видеороликов извлекается с помощью метода videos.batchGetStats .

Для использования этого метода задайте параметру id запроса список идентификаторов видео YouTube, разделенных запятыми, для которых вы хотите получить статистику. Задайте значение параметра part в виде списка частей ресурса videoStat разделенных запятыми, которые вы хотите включить в ответ. Поддерживаемые части: snippet , statistics , contentDetails и id .

Для использования этого метода с видео, не являющимися общедоступными, требуется аутентификация, но для общедоступных видео она не требуется. Если запрос получает данные для каких-либо общедоступных видео, он должен быть надлежащим образом авторизован .

Приведённый ниже запрос получает статистику для видео с идентификаторами VIDEO_ID_1 и VIDEO_ID_2 :

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats?
        part=snippet,statistics
        &id=VIDEO_ID_1,VIDEO_ID_2

Загрузите видео

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

  • В документации к методу videos.insert API содержится несколько примеров кода, объясняющих, как загружать видео с использованием различных языков программирования.

  • В руководстве по возобновляемой загрузке объясняется последовательность HTTP-запросов, которые приложение использует для загрузки видео с помощью возобновляемого процесса загрузки. Руководство в первую очередь предназначено для разработчиков, которые не могут использовать клиентские библиотеки Google API , некоторые из которых обеспечивают встроенную поддержку возобновляемой загрузки.

  • В примере на JavaScript для загрузки видео используется CORS (междоменное совместное использование ресурсов), чтобы продемонстрировать, как загрузить видеофайл через веб-страницу. Библиотека загрузки CORS, используемая в API v3, по умолчанию поддерживает возобновляемую загрузку. Кроме того, пример демонстрирует, как проверить статус загруженного видео, получив часть processingDetails ресурса video , а также как обрабатывать изменения статуса загруженного видео.

Проверить статус загруженного видео

В этом примере показано, как проверить статус загруженного видео. Загруженное видео сразу же отобразится в ленте загруженных видео авторизованного пользователя. Однако видео не будет видно на YouTube до тех пор, пока не будет обработано.

  • Шаг 1: Загрузите видео.

    Для загрузки видео вызовите метод videos.insert . Если запрос будет успешным, ответ API будет содержать ресурс video , который идентифицирует уникальный идентификатор загруженного видео.

  • Шаг 2: Проверьте статус видео.

    Вызовите метод videos.list , чтобы проверить статус видео. Установите значение параметра id равным идентификатору видео, полученному на шаге 1. Установите значение параметра part равным processingDetails .

    Если запрос обработан успешно, ответ API будет содержать video . Проверьте значение свойства processingDetails.processingStatus , чтобы определить, продолжает ли YouTube обработку видео. Значение свойства изменится на что-то отличное от processing , например, succeeded или failed , когда YouTube завершит обработку видео.

    Тело запроса представляет собой video , в котором свойство id указывает идентификатор видео, которое вы удаляете. В этом примере ресурс также содержит объект recordingDetails .

    Приведённый ниже запрос проверяет статус видео. Для выполнения запроса в API Explorer необходимо задать значение свойства id .

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
            part=snippet,processingDetails
            &id=VIDEO_ID

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

Обновить видео

В этом примере показано, как обновить видео, добавив информацию о времени и месте его записи. Пример включает следующие шаги:

  • Шаг 1: Получите идентификатор видео.

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

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

  • Шаг 2: Обновите видео.

    Для обновления конкретного видео вызовите метод videos.update . Установите значение параметра part равным recordingDetails . (Значение параметра зависит от того, какие поля метаданных видео обновляются.)

    Тело запроса представляет собой video , в котором свойство id указывает идентификатор видео, которое вы обновляете. В этом примере ресурс также содержит объект recordingDetails .

    Приведенный ниже пример указывает на то, что видео было записано 30 октября 2013 года в Бостоне:

    {
      "id": "VIDEO_ID",
      "recordingDetails": {
        "location": {
          "latitude": "42.3464",
          "longitude": "-71.0975"
        }
        "recordingDate": "2013-10-30T23:15:00.000Z"
      }
    }

    Для завершения запроса в API-обозревателе необходимо задать значение свойства id .

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

Загрузите собственное изображение-миниатюру и установите его для видео.

Вы можете использовать метод thumbnails.set из API v3 для загрузки пользовательского изображения-миниатюры и установки его для видео. В вашем запросе значение параметра videoId определяет видео, для которого будет использоваться миниатюра.

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

Примеры кода по теме: PHP , Python

Удалить видео

В этом примере показано, как удалить видео. Пример включает следующие шаги:

  • Шаг 1: Получите идентификатор видео.

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

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

  • Шаг 2: Удалить видео

    Для удаления конкретного видео вызовите метод videos.delete . В запросе параметр id указывает идентификатор удаляемого видео. Запрос должен быть авторизован с использованием OAuth 2.0. Если вы тестируете этот запрос в API Explorer, вам потребуется заменить значение параметра id на действительный идентификатор видео.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete?
            id=VIDEO_ID
    

Сообщить о видео, содержащем оскорбления

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

  • Шаг 1: Получите идентификаторы, объясняющие причину, по которой видео было заблокировано.

    Отправьте авторизованный запрос методу videoAbuseReportReasons.list , чтобы получить список допустимых причин для пометки видео как спам-сообщения. Пример ресурса videoAbuseReportReason приведенный ниже, содержит информацию для пометки видео, содержащего спам или вводящий в заблуждение контент.

    {
      "kind": "youtube#videoAbuseReportReason",
      "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"",
      "id": "S",
      "snippet": {
        "label": "Spam or misleading",
        "secondaryReasons": [
          {
            "id": "27",
            "label": "Spam or mass advertising"
          },
          {
            "id": "28",
            "label": "Misleading thumbnail"
          },
          {
            "id": "29",
            "label": "Malware or phishing"
          },
          {
            "id": "30",
            "label": "Pharmaceutical drugs for sale"
          },
          {
            "id": "31",
            "label": "Other misleading info"
          }
        ]
      }
    }

    Как указано в материале, эта причина связана со списком дополнительных причин. При пометке видео как содержащего спам необходимо указать идентификатор причины, и настоятельно рекомендуется указать также дополнительную причину.

  • Шаг 2: Отметьте видео как содержащее ненормативную лексику.

    Для отправки авторизованного запроса методу videos.reportAbuse фактически сообщает о видео. Тело запроса представляет собой объект JSON, который идентифицирует как видео, которое помечается как нарушающее правила, так и причину пометки. Как указано в шаге 1, для некоторых типов причин допускается и настоятельно рекомендуется указывать дополнительную причину.

    Свойство videoId объекта JSON идентифицирует видео, которое помечается как проблемное.

    Приведенный ниже пример JSON-объекта помечает видео как содержащее спам или вводящий в заблуждение контент, а точнее, как использующее вводящее в заблуждение изображение-миниатюру. Как показано в приведенном выше примере JSON-объекта, идентификатор для спама или вводящего в заблуждение контента — S. Идентификатор для вводящей в заблуждение миниатюры28 .

    {
      "videoId": "VIDEO_ID",
      "reasonId": "S",
      "secondaryReasonId": "28",
      "comments": "Testing the video flagging feature.",
      "language": "en"
    }

    Запрос videos.reportAbuse должен быть авторизован с использованием OAuth 2.0. Ссылка ниже загружает указанный выше JSON-объект в API Explorer. Для проверки запроса необходимо заменить значение свойства videoId действительным идентификатором видео. Помните, что отправка этого запроса фактически пометит видео как нарушающее правила.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse