Descripción general
Esta guía está destinada a los desarrolladores de aplicaciones cliente de API que utilizan los recursos predeterminados liveStream
y liveBroadcast
de los canales de YouTube para transmitir contenido en vivo. Su objetivo es ayudarte a garantizar que tu aplicación maneje correctamente la baja de las transmisiones y transmisiones predeterminadas, y sea relevante para ti si alguna de las siguientes declaraciones se aplica a tu aplicación:
- Comprueba el valor de la propiedad
isDefaultBroadcast
del recursoliveBroadcast
. - Comprueba el valor de la propiedad
isDefaultStream
del recursoliveStream
. Llama al método
liveBroadcasts.list
y establece el valor del parámetrobroadcastType
enpersistent
. A partir de la fecha de baja:- Si el valor del parámetro
broadcastType
espersistent
, el métodoliveBroadcasts.list
no mostrará ningún resultado. - Si el valor del parámetro
broadcastType
esall
, el métodoliveBroadcasts.list
no mostrará las transmisiones persistentes que existían antes de esa hora.
- Si el valor del parámetro
Si tu aplicación se ve afectada, consulta la sección Actualiza tu aplicación, que explica los cambios de procedimiento que tu aplicación podría realizar como resultado de esta baja. Esa sección identifica los pasos específicos en la guía Ciclo de una transmisión que tu cliente de la API posiblemente no siga si actualmente usa la transmisión y transmisión predeterminadas.
¿Qué sucede?
Desde 2015, YouTube crea automáticamente una transmisión predeterminada y una transmisión predeterminada para un canal, cuando este se habilitó para la transmisión en vivo. La transmisión predeterminada existía de manera indefinida y no se pudo borrar. De manera similar, la transmisión predeterminada se considera continua. 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 ya mencionada, YouTube ya no creará transmisiones y transmisiones 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 está personalizada para diferenciar entre esos recursos predeterminados y otras transmisiones y transmisiones que hayan creado los propietarios de canales.
En lugar de depender de los recursos predeterminados, los clientes de la API deben crear y administrar los recursos liveBroadcast
y liveStream
, y vincularlos.
Actualiza tu aplicación
Para revisar la terminología rápidamente, una transmisión representa un evento que puede verse en YouTube a medida que sucede, y una transmisión es el mecanismo para enviar el contenido del video real a YouTube. Una transmisión puede y debe vincularse de forma exacta a una transmisión.
Migración desde emisiones predeterminadas
Antes de esta baja, los clientes de API podían elegir entre usar la transmisión predeterminada de un canal o crear una transmisión específica del evento. La transmisión predeterminada era un recurso persistente que se podía reutilizar en varios eventos, mientras que un recurso de transmisión específico del evento es un recurso de uso único que corresponde exactamente a un video de YouTube.
Tu aplicación cliente usa la transmisión predeterminada si llama al método liveBroadcasts.list
y realiza cualquiera de las siguientes acciones:
- Establece el valor del parámetro
broadcastType
enpersistent
. Esta solicitud solo recupera la transmisión predeterminada. - Establece el valor del parámetro
broadcastType
enall
y, luego, identifica el recursoliveBroadcast
en la respuesta de la API para la cual el valor de la propiedadisDefaultBroadcast
estrue
.
Tras la baja, YouTube solo admitirá transmisiones específicas de eventos.
Esto significa que, en lugar de depender de la transmisión predeterminada, las aplicaciones cliente necesitan crear recursos liveBroadcast
para cada evento de emisió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 "La 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 entre las próximas transmisiones específicas de eventos.
Migrar desde transmisiones predeterminadas
Una transmisión te permite transmitir contenido de audio y video a YouTube, y define la configuración para transmitir tu contenido a YouTube. Es común que las emisoras vuelvan a usar la misma transmisión para muchas transmisiones diferentes si se producen en momentos diferentes.
Aunque tu aplicación no puede usar la transmisión predeterminada, puede crear una transmisión reutilizable que se puede volver a usar en cada transmisión. Para crear un recurso liveStream
, llama al método liveStreams.insert
mediante las instrucciones del paso 1.2 de la guía “La vida de una transmisión”. De forma predeterminada, las transmisiones recién creadas se pueden reutilizar. 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 las transmisiones.
La siguiente lista contiene 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 usan las transmisiones predeterminadas para cada propiedad, que probablemente sean las opciones de configuración que te gustaría usar en una aplicación cliente si migras para usar transmisiones predeterminadas.
cdn.frameRate
:variable
cdn.ingestionType
:rtmp
cdn.resolution
:variable
contentDetails.isReusable
:true
Vincula transmisiones a transmisiones
Cada recurso liveBroadcast
debe vincularse con una sola transmisión antes de que se pueda iniciar la transmisión en vivo en YouTube. (La transmisión no está vinculada a ninguna transmisión en el momento en que se crea).
El proceso de vinculación se controló automáticamente para la transmisión predeterminada, que se vinculó de forma inextricable a la transmisión predeterminada. Sin embargo, después de la fecha de baja, las aplicaciones cliente necesitan administrar ese proceso para todas las transmisiones.
Para vincular una transmisión a una transmisión, llama al método liveBroadcasts.bind
como se explica en el paso 1.3 de la guía "Ciclo de una transmisión".
- Si usas una transmisión reutilizable, puedes crear una transmisión una sola vez y, luego, vincularla a cada transmisión.
- Si no usas una transmisión reutilizable, debes crear una transmisión y una transmisión y, luego, vincularlas.
Cómo probar tu transmisión
Cuando no usas la transmisión predeterminada, tienes la opción de probar la transmisión. Para realizar una prueba, incorpora un reproductor que te permita obtener una vista previa del video de la transmisión como lo verían los espectadores de YouTube, pero la transmisión no es visible para otros espectadores.
Si tu cliente de la API usó la transmisión y la transmisión predeterminadas, y quieres agregar una fase de prueba al proceso de transmisión, consulta la etapa 3 de la guía “La vida de una transmisión”.
Si deseas probar la transmisión continua, cuando insertes una transmisión, deberás 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 inicia automáticamente cada vez que comienzas a transmitir video en la transmisión predeterminada. Del mismo modo, la transmisión predeterminada finalizó después de que dejas de transmitir el video. Luego, cada sesión de transmisión que utiliza esos recursos predeterminados se convierte en un video de tu canal.
Si bien las funciones de inicio y detención automáticas eran el comportamiento predeterminado para las transmisiones predeterminadas, esas funciones son opcionales y deben habilitarse para otras transmisiones. Si deseas usar estas funciones, cuando insertes una emisión, deberás establecer los valores de las propiedades contentDetails.enableAutoStart y contentDetails.enableAutoStop en true
. Estas funciones son independientes, por lo que puedes optar por usar una y no la otra.
Si no habilitas las funciones de inicio y detención automáticas para transmisiones nuevas, el cliente de la API debe llamar al método liveBroadcasts.transition para actualizar el estado de una transmisión cuando comienzas y terminas la transmisión de video. En la guía "La vida de una transmisión", consulta los paso 4.3 y paso 5.2 a fin de obtener instrucciones para administrar estas transiciones al comienzo y al final de una transmisión.