Обзор
Это руководство предназначено для разработчиков клиентских приложений API, которые используют ресурсы liveStream и liveBroadcast по умолчанию для каналов YouTube, чтобы транслировать контент в прямом эфире. Она поможет вам убедиться, что ваше приложение корректно обрабатывает прекращение поддержки трансляций и потоков по умолчанию. Эта статья будет полезна, если к вашему приложению относится хотя бы одно из следующих утверждений:
- Она проверяет значение свойства
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–variablecdn.ingestionType-rtmpcdn.resolution-variablecontentDetails.isReusabletrue
Как связать трансляцию с потоком
Каждый ресурс liveBroadcast должен быть связан ровно с одним потоком, прежде чем можно будет начать прямую трансляцию на YouTube. (При создании трансляция не связана ни с одним потоком.)
Процесс привязки для трансляции по умолчанию был выполнен автоматически, поскольку она неразрывно связана с потоком по умолчанию. Однако после даты прекращения поддержки клиентские приложения должны будут управлять этим процессом для всех трансляций.
Чтобы связать трансляцию с потоком, вызовите метод liveBroadcasts.bind, как описано в шаге 1.3 руководства "Жизненный цикл трансляции".
- Если вы используете трансляцию с возможностью повторного использования, ее нужно создать только один раз, а затем привязать к ней все трансляции.
- Если вы не используете повторную трансляцию, вам нужно создать трансляцию и поток, а затем связать их.
Как проверить трансляцию
Если вы не используете трансляцию по умолчанию, вы можете протестировать трансляцию. Для этого нужно встроить проигрыватель, который позволит вам посмотреть трансляцию так, как ее увидят зрители. При этом она не будет доступна другим пользователям.
Если ваш API-клиент ранее использовал трансляцию и поток по умолчанию и вы хотите добавить этап тестирования в процесс потоковой обработки данных, ознакомьтесь с этапом 3 руководства "Жизненный цикл трансляции".
Если вы хотите протестировать трансляцию, то при ее добавлении вам нужно задать для свойства contentDetails.monitorStream.enableMonitorStream значение true, а для свойства contentDetails.enableAutoStart – false. Это значения по умолчанию для обоих свойств.
Как использовать функции автозапуска и автоостановки
Трансляция по умолчанию запускалась автоматически, когда вы начинали стримить видео в стандартном потоке. Трансляция по умолчанию также завершалась, когда вы прекращали стриминг. Каждая трансляция, проведенная с использованием этих ресурсов, впоследствии становилась видео на вашем канале.
Функции автозапуска и автоостановки были режимом работы по умолчанию для трансляций по умолчанию, но для других трансляций их нужно включать вручную. Если вы хотите использовать эти функции, при добавлении трансляции задайте для свойств contentDetails.enableAutoStart и contentDetails.enableAutoStop значение true. Эти функции независимы друг от друга, поэтому вы можете использовать одну из них, а другую – нет.
Если вы не включите автоматический запуск и остановку для новых трансляций, то для обновления статуса трансляции в начале и конце стрима вашему API-клиенту потребуется вызывать метод liveBroadcasts.transition. Инструкции по управлению этими переходами в начале и конце трансляции приведены в руководстве "Жизненный цикл трансляции" (шаг 4.3 и шаг 5.2).