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

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

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

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

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

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

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

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

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

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

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

Чтобы получить список самых популярных видео, вызовите метод videos.list и задайте для chart значение mostPopular . При получении этого списка вы также можете установить один или оба следующих параметра:

  • regionCode : дает указание API вернуть список видео для указанного региона.
  • videoCategoryId : определяет категорию видео, для которой должны быть получены самые популярные видео.

Приведенный ниже запрос извлекает самые популярные спортивные видео в Испании:

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

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

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

  • Документация по методу video.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, вам необходимо установить значение свойства 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 версии 3, чтобы загрузить пользовательскую миниатюру и установить ее для видео. В вашем запросе значение параметра videoId определяет видео, для которого будет использоваться миниатюра.

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

Связанные примеры кода: 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. Чтобы протестировать запрос, вам нужно заменить действительный идентификатор видео на значение свойства videoId . Помните, что отправка этого запроса фактически пометит видео.

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