Обзор
Это руководство предназначено для разработчиков клиентских приложений 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
, чтобы создавать одноразовые потоки и устанавливать связь «один к одному» между трансляциями и потоками.
Следующий список содержит четыре свойства, помимо названия и описания потока , которые можно задать при создании нового потока. В списке показаны значения, используемые потоками по умолчанию для каждого свойства. Скорее всего, именно эти настройки вы захотите использовать в клиентском приложении, если отказываетесь от потоков по умолчанию.
-
cdn.frameRate
-variable
-
cdn.ingestionType
-rtmp
-
cdn.resolution
-variable
-
contentDetails.isReusable
-true
Привязка трансляций к потокам
Каждый ресурс 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 руководства «Жизнь трансляции».