Guía de migración para la baja de las transmisiones y los streams predeterminados

Descripción general

Esta guía está dirigida a los desarrolladores de aplicaciones cliente de la API que usan los recursos liveStream y liveBroadcast predeterminados de los canales de YouTube para transmitir contenido en vivo. Su objetivo es ayudarte a garantizar que tu aplicación controle correctamente la baja de las transmisiones y los flujos predeterminados, y es relevante para ti si alguna de las siguientes afirmaciones se aplica a tu aplicación:

  • Verifica el valor de la propiedad isDefaultBroadcast del recurso liveBroadcast.
  • Verifica el valor de la propiedad isDefaultStream del recurso liveStream.
  • Llama al método liveBroadcasts.list y establece el valor del parámetro broadcastType en persistent. A partir de la fecha de baja:

    • Si el valor del parámetro broadcastType es persistent, el método liveBroadcasts.list no devolverá ningún resultado.
    • Si el valor del parámetro broadcastType es all, el método liveBroadcasts.list no devolverá transmisiones persistentes que existían antes de ese momento.

Si tu aplicación se ve afectada, consulta la sección Actualiza tu aplicación, en la que se explican los cambios de procedimiento que tu aplicación podría necesitar realizar como resultado de esta baja. En esa sección, se identifican pasos específicos de la guía Ciclo de vida de una transmisión que tu cliente de la API podría no seguir de forma habitual si actualmente usa la transmisión y la emisión predeterminadas.

¿Qué sucede?

Desde 2015, YouTube crea automáticamente una transmisión y una emisión predeterminadas para un canal cuando se habilita la transmisión en vivo en él. La transmisión predeterminada existió de forma indefinida y no se pudo borrar. Del mismo modo, la transmisión predeterminada se consideró persistente. Siempre existió, no tenía una hora de inicio o finalización asociada y no estaba vinculado a un evento en particular.

A partir de la fecha de baja mencionada anteriormente, YouTube ya no creará transmisiones ni emisiones predeterminadas. Este cambio afecta a las aplicaciones cliente que dependen de esos recursos para transmitir contenido en vivo. También afectará a las aplicaciones en las que la interfaz de usuario se personaliza para diferenciar entre esos recursos predeterminados y otras transmisiones y streams que crearon los propietarios de los canales.

En lugar de depender de los recursos predeterminados, los clientes de la API deben crear y administrar recursos liveBroadcast y liveStream, y vincular esos recursos.

Cómo actualizar tu aplicación

Para revisar rápidamente la terminología, una transmisión representa un evento que se puede mirar en YouTube mientras sucede, y una secuencia es el mecanismo para enviar el contenido de video real a YouTube. Una transmisión se puede y se debe vincular a exactamente una transmisión.

Migración desde transmisiones predeterminadas

Antes de esta baja en desuso, los clientes de la API podían elegir entre usar la transmisión predeterminada de un canal o crear una transmisión específica para un evento. La transmisión predeterminada era un recurso persistente que se podía reutilizar para varios eventos, mientras que un recurso de transmisión específico del evento es un recurso de un solo uso que corresponde a exactamente un video de YouTube.

Tu aplicación cliente usa la transmisión predeterminada si llama al método liveBroadcasts.list y realiza una de las siguientes acciones:

  • Establece el valor del parámetro broadcastType en persistent. Esta solicitud solo recupera la transmisión predeterminada.
  • Establece el valor del parámetro broadcastType en all y, luego, identifica el recurso liveBroadcast en la respuesta de la API para el que el valor de la propiedad isDefaultBroadcast es true.

Después de la baja, YouTube solo admitirá transmisiones específicas para eventos. Esto significa que, en lugar de depender de la transmisión predeterminada, las aplicaciones cliente deben crear recursos liveBroadcast para cada evento de transmisión individual.

Para crear un recurso liveBroadcast, llama al método liveBroadcasts.insert. Este proceso se explica en el paso 1.1 de la guía "Ciclo de vida de una transmisión".

Si aún no lo hace, tu interfaz de usuario también debe proporcionar mecanismos para que los usuarios distingan y seleccionen las transmisiones específicas de los próximos eventos.

Migración desde transmisiones predeterminadas

Una transmisión te permite transmitir contenido de audio y video a YouTube, y define la configuración de cómo transmites tu contenido a YouTube. Es común que los emisores reutilicen la misma transmisión para muchas transmisiones diferentes si estas se producen en diferentes momentos.

Aunque tu aplicación no puede usar la transmisión predeterminada, puede crear una transmisión reutilizable que se pueda usar para cada emisión. Para crear un recurso liveStream, llama al método liveStreams.insert y sigue las instrucciones del paso 1.2 de la guía "Ciclo de vida de una transmisión". De forma predeterminada, los streams creados recientemente son reutilizables. Sin embargo, si lo prefieres, puedes establecer la propiedad contentDetails.isReusable en false para crear transmisiones de un solo uso y tener una relación uno a uno entre las transmisiones y los streams.

En la siguiente lista, se incluyen las cuatro propiedades, además del título de la transmisión y la descripción de la transmisión, que puedes configurar cuando creas una transmisión nueva. En la lista, se muestran los valores que los flujos predeterminados usan para cada propiedad, que probablemente sean los parámetros de configuración que desees usar en una aplicación cliente si migras para dejar de usar flujos predeterminados.

Cómo vincular transmisiones a programas

Cada recurso liveBroadcast debe estar vinculado a exactamente una transmisión antes de que pueda comenzar la transmisión en vivo en YouTube. (La transmisión no está vinculada a ningún flujo en el momento de su creación).

El proceso de vinculación se controló automáticamente para la transmisión predeterminada, que estaba inextricablemente vinculada a la transmisión predeterminada. Sin embargo, después de la fecha de baja, las aplicaciones cliente deberán administrar ese proceso para todas las transmisiones.

Para vincular una transmisión a un flujo, llama al método liveBroadcasts.bind como se explica en el paso 1.3 de la guía "Ciclo de vida de una transmisión".

  • Si usas una transmisión reutilizable, puedes crear una transmisión una sola vez y, luego, vincular cada emisión a esa transmisión.
  • Si no usas una transmisión reutilizable, debes crear una transmisión y un flujo, y, luego, vincularlos.

Cómo probar tu transmisión

Cuando no usas la transmisión predeterminada, tienes la opción de probar tu transmisión. Para realizar una prueba, debes insertar un reproductor que te permita obtener una vista previa del video de la transmisión tal como lo verían los usuarios de YouTube, pero la transmisión no será visible para otros usuarios.

Si tu cliente de API usaba la transmisión y el programa predeterminados, y quieres agregar una fase de prueba a tu proceso de transmisión, consulta la etapa 3 de la guía "Ciclo de vida de una transmisión".

Si quieres probar tu transmisión, cuando insertes una transmisión, debes establecer la propiedad contentDetails.monitorStream.enableMonitorStream en true y la propiedad contentDetails.enableAutoStart en false. Estos son los valores predeterminados para ambas propiedades.

Cómo usar las funciones de inicio y detención automáticos

La transmisión predeterminada se iniciaba automáticamente cada vez que comenzabas a transmitir videos en el canal predeterminado. Del mismo modo, la transmisión predeterminada finalizó después de que detuviste la transmisión de video. Cada sesión de transmisión que usó esos recursos predeterminados se convirtió en un video de tu canal.

Si bien las funciones de inicio y detención automáticos eran el comportamiento predeterminado para las transmisiones predeterminadas, estas funciones son opcionales y deben habilitarse para otras transmisiones. Si quieres usar estas funciones, cuando insertes una transmisión, debes establecer los valores de las propiedades contentDetails.enableAutoStart y contentDetails.enableAutoStop en true. Estas funciones son independientes, por lo que puedes elegir usar una y no la otra.

Si no habilitas las funciones de inicio y detención automáticos para las transmisiones nuevas, tu cliente de API deberá llamar al método liveBroadcasts.transition para actualizar el estado de una transmisión cuando comiences y termines de transmitir video. En la guía "Ciclo de vida de una transmisión", consulta el paso 4.3 y el paso 5.2 para obtener instrucciones sobre cómo administrar estas transiciones al principio y al final de una transmisión.