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

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

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

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

В этом примере показано, как получить список самых популярных видеороликов 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
  

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

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

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

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

  • В примере JavaScript для загрузки видео используется CORS (взаимодействие с другими источниками), чтобы продемонстрировать загрузку видеофайла через веб-страницу. Библиотека загрузки CORS, используемая API версии 3, естественным образом поддерживает возобновляемую загрузку. Кроме того, в примере показано, как проверить статус загруженного видео, извлекая раздел 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, необходимо задать значение свойства 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 Explorer необходимо задать значение свойства id .

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

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

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

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

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

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

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

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

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

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

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

    Чтобы удалить конкретное видео, вызовите метод videos.delete . В запросе параметр id указывает идентификатор удаляемого видео. Запрос должен быть авторизован с помощью OAuth 2.0. При тестировании этого запроса в обозревателе API необходимо заменить значение параметра 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