Руководство по переходу на устаревшее решение для трансляций и потоков по умолчанию

Обзор

Это руководство предназначено для разработчиков клиентских приложений API, использующих стандартные ресурсы каналов YouTube liveStream и liveBroadcast для потоковой трансляции. Оно призвано помочь вам обеспечить корректную обработку вашим приложением устаревших стандартных трансляций и потоков. Оно будет полезно вам, если к вашему приложению применимо хотя бы одно из следующих утверждений:

  • Он проверяет значение свойства isDefaultBroadcast ресурса liveBroadcast .
  • Он проверяет значение свойства isDefaultStream ресурса liveStream .
  • Он вызывает метод liveBroadcasts.list и устанавливает значение параметра broadcastType равным persistent . На дату прекращения поддержки:

    • Если значение параметра broadcastType равно persistent , то метод liveBroadcasts.list не вернет никаких результатов.
    • Если значение параметра broadcastType равно all , то метод liveBroadcasts.list не будет возвращать постоянные трансляции, существовавшие до этого времени.

Если ваше приложение затронуто, обратитесь к разделу «Обновление приложения» , где описаны процедурные изменения, которые может потребоваться внести в ваше приложение в связи с этим прекращением поддержки. В этом разделе описаны конкретные этапы в руководстве « Жизнь трансляции» , которые ваш API-клиент может не соблюдать, если в настоящее время использует трансляцию и поток по умолчанию.

Что происходит?

С 2015 года YouTube автоматически создавал поток и трансляцию по умолчанию для канала, когда на нём была включена прямая трансляция. Поток по умолчанию существовал неограниченное время и не мог быть удалён. Аналогично, трансляция по умолчанию считалась постоянной . Она существовала всегда, не имела связанного с ней времени начала и окончания и не была привязана к определённому событию.

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

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

Обновление вашего приложения

Если кратко описать терминологию, то трансляция представляет собой событие, которое можно смотреть на YouTube в режиме реального времени, а поток — это механизм отправки видеоконтента на YouTube. Трансляция может и должна быть привязана только к одному потоку.

Миграция с трансляций по умолчанию

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

Ваше клиентское приложение использует трансляцию по умолчанию, если оно вызывает метод liveBroadcasts.list и выполняет одно из следующих действий:

  • Он устанавливает значение параметра broadcastType равным persistent . Этот запрос извлекает только трансляцию по умолчанию.
  • Он устанавливает значение параметра broadcastType равным all , а затем идентифицирует ресурс liveBroadcast в ответе API, для которого значение свойства isDefaultBroadcast равно true .

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

Чтобы создать ресурс liveBroadcast , вызовите метод liveBroadcasts.insert . Этот процесс описан в шаге 1.1 руководства «Жизнь трансляции» .

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

Миграция из потоков по умолчанию

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

Несмотря на то, что ваше приложение не может использовать поток по умолчанию, оно может создать поток многократного использования, который можно использовать для каждой трансляции. Чтобы создать ресурс liveStream , вызовите метод liveStreams.insert , следуя инструкциям в шаге 1.2 руководства «Жизнь трансляции» . По умолчанию вновь созданные потоки можно использовать повторно. Однако при желании вы можете установить свойство contentDetails.isReusable в значение false , чтобы создавать одноразовые потоки и устанавливать связь «один к одному» между трансляциями и потоками.

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

Привязка трансляций к потокам

Каждый ресурс liveBroadcast должен быть привязан ровно к одному потоку, прежде чем прямая трансляция на YouTube сможет начаться. (Трансляция не привязана ни к одному потоку на момент её создания.)

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

Чтобы привязать трансляцию к потоку, вызовите метод liveBroadcasts.bind , как описано в шаге 1.3 руководства «Жизнь трансляции» .

  • Если вы используете повторно используемый поток, вы можете создать поток один раз, а затем привязывать каждую трансляцию к этому потоку.
  • Если вы не используете повторно используемый поток, вам необходимо создать трансляцию и поток, а затем связать их вместе.

Тестирование вашей трансляции

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

Если ваш API-клиент ранее использовал трансляцию и поток по умолчанию, и вы хотите добавить этап тестирования в процесс потоковой передачи, см. этап 3 руководства «Жизнь трансляции» .

Если вы хотите протестировать свой поток, то при вставке трансляции необходимо установить свойство contentDetails.monitorStream.enableMonitorStream в true , а свойство contentDetails.enableAutoStart — в false . Это значения по умолчанию для обоих свойств.

Использование функций автозапуска и автоостановки

Трансляция по умолчанию автоматически запускалась при запуске потоковой передачи видео на потоке по умолчанию. Аналогично, трансляция по умолчанию завершалась после остановки потоковой передачи. Каждый сеанс потоковой передачи с использованием этих ресурсов по умолчанию впоследствии становился видео на вашем канале.

Хотя функции автоматического запуска и автоматической остановки были включены по умолчанию для стандартных трансляций, для других трансляций они необязательны и должны быть включены. Если вы хотите использовать эти функции, то при вставке трансляции необходимо установить значения свойств contentDetails.enableAutoStart и contentDetails.enableAutoStop в true . Эти функции независимы, поэтому вы можете использовать одну из них, а не другую.

Если вы не включите функции автоматического запуска и остановки для новых трансляций, вашему API-клиенту необходимо будет вызывать метод liveBroadcasts.transition для обновления статуса трансляции при запуске и завершении трансляции. Инструкции по управлению этими переходами в начале и конце трансляции см. в шагах 4.3 и 5.2 руководства «Жизнь трансляции».