La API ahora admite la capacidad de marcar tus transmisiones en vivo como “creadas para niños”, y el recurso
liveBroadcast
ahora contiene una propiedad que identifica el estado “creado para niños” de esa transmisión en vivo. Las Condiciones del Servicio y las Políticas para Desarrolladores de los Servicios de la API de YouTube también se actualizaron el 10 de enero de 2020. Para obtener más información, consulta los historiales de revisión del servicio de la API de transmisión en vivo de YouTube y las Condiciones del Servicio de los servicios de la API de YouTube.
Un recurso liveBroadcast
representa un evento que se transmitirá mediante video en vivo en YouTube.
Métodos
La API admite los siguientes métodos para los recursos liveBroadcasts
:
- list
- Devuelve una lista de transmisiones de YouTube que coinciden con los parámetros de solicitud de la API. Pruébala ahora.
- insertar
- Crea una transmisión. Pruébala ahora.
- actualización
- Actualiza una transmisión. Por ejemplo, puedes modificar la configuración de transmisión definida en el objeto
contentDetails
del recursoliveBroadcast
. Pruébalo ahora. - borrar
- Borra una transmisión. Pruébala ahora.
- vincular
- Vincula una transmisión de YouTube a una transmisión o quita una vinculación existente entre una transmisión y una transmisión. Una transmisión solo se puede vincular a una transmisión de video, aunque una transmisión de video se puede vincular a más de una transmisión. Pruébala ahora.
- transition
- Cambia el estado de una transmisión en vivo de YouTube y, luego, inicia los procesos asociados con el nuevo estado. Por ejemplo, cuando cambias el estado de una transmisión a
testing
, YouTube comienza a transmitir video a la transmisión del monitor de esa transmisión. Antes de llamar a este método, debes confirmar que el valor de la propiedadstatus.streamStatus
para la transmisión vinculada a tu transmisión seaactive
. Pruébalo ahora. - punto de inserción
- Inserta un punto de inserción en una transmisión en vivo. Es posible que el punto de inserción active una pausa publicitaria.
Representación de recursos
En la siguiente estructura JSON, se muestra el formato de un recurso liveBroadcasts
:
{ "kind": "youtube#liveBroadcast", "etag": etag, "id": string, "snippet": { "publishedAt": datetime, "channelId": string, "title": string, "description": string, "thumbnails": { (key): { "url": string, "width": unsigned integer, "height": unsigned integer } }, "scheduledStartTime": datetime, "scheduledEndTime": datetime, "actualStartTime": datetime, "actualEndTime": datetime, "isDefaultBroadcast": boolean, "liveChatId": string }, "status": { "lifeCycleStatus": string, "privacyStatus": string, "recordingStatus": string, "madeForKids": string, "selfDeclaredMadeForKids": string, }, "contentDetails": { "boundStreamId": string, "boundStreamLastUpdateTimeMs": datetime, "monitorStream": { "enableMonitorStream": boolean, "broadcastStreamDelayMs": unsigned integer, "embedHtml": string }, "enableEmbed": boolean, "enableDvr": boolean, "recordFromStart": boolean, "enableClosedCaptions": boolean, "closedCaptionsType": string, "projection": string, "enableLowLatency": boolean, "latencyPreference": boolean, "enableAutoStart": boolean, "enableAutoStop": boolean }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } } }
Propiedades
La siguiente tabla define las propiedades que aparecen en este recurso:
Propiedades | |
---|---|
kind |
string Identifica el tipo de recurso de la API. El valor será youtube#liveBroadcast . |
etag |
etag Es la etiqueta de Etag de este recurso. |
id |
string Es el ID que YouTube asigna para identificar de forma exclusiva la transmisión. |
snippet |
object El objeto snippet contiene detalles básicos sobre el evento, como su título, descripción, hora de inicio y hora de finalización. |
snippet.publishedAt |
datetime Fecha y hora en que la transmisión se agregó a la programación de transmisiones en vivo de YouTube. El valor se especifica en formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.channelId |
string Es el ID que YouTube usa para identificar de forma exclusiva el canal que publica la transmisión. |
snippet.title |
string Es el título de la transmisión. Ten en cuenta que la transmisión representa exactamente un video de YouTube. Para configurar este campo, modifica el recurso de transmisión o establece el campo title del recurso de video correspondiente. |
snippet.description |
string Es la descripción de la transmisión. Al igual que con title , puedes configurar este campo modificando el recurso de transmisión o configurando el campo description del recurso de video correspondiente. |
snippet.thumbnails |
object Es un mapa de imágenes en miniatura asociadas con la transmisión. Para cada objeto anidado en este objeto, la clave es el nombre de la imagen de miniatura y el valor es un objeto que contiene otra información sobre la miniatura. |
snippet.thumbnails.(key) |
object Los valores clave válidos son los siguientes:
|
snippet.thumbnails.(key).url |
string Es la URL de la imagen. |
snippet.thumbnails.(key).width |
unsigned integer Es el ancho de la imagen. |
snippet.thumbnails.(key).height |
unsigned integer Es la altura de la imagen. |
snippet.scheduledStartTime |
datetime Es la fecha y hora en que está programada la transmisión. El valor se especifica en formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Creator Studio te permite crear una transmisión sin programar una hora de inicio. En este caso, la transmisión comienza cada vez que el propietario del canal comienza a transmitir. Para estas transmisiones, el valor de datetime corresponde a la hora cero de UNIX y este valor no se puede cambiar mediante la API ni en Creator Studio. |
snippet.scheduledEndTime |
datetime Es la fecha y hora en la que está programada la finalización de la transmisión. El valor se especifica en formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Si un recurso liveBroadcast no especifica un valor para esta propiedad, la transmisión se programa para continuar de forma indefinida. Del mismo modo, si no especificas un valor para esta propiedad, YouTube tratará la transmisión como si continuara indefinidamente. |
snippet.actualStartTime |
datetime Es la fecha y hora en que comenzó la transmisión. Esta información solo está disponible una vez que el estado de la transmisión es live . El valor se especifica en formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.actualEndTime |
datetime Fecha y hora en que finalizó la transmisión. Esta información solo está disponible una vez que el estado de la transmisión es complete . El valor se especifica en formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.isDefaultBroadcast |
boolean
Esta propiedad dejará de estar disponible a partir del 1 de septiembre de 2020. En ese momento, YouTube dejará de crear transmisiones y transmisiones predeterminadas cuando un canal esté habilitado para transmitir en vivo. Consulta el anuncio de baja para obtener más detalles.
Esta propiedad indica si esta transmisión es la predeterminada.Cómo funcionan las transmisiones predeterminadas Cuando un canal de YouTube está habilitado para transmitir en vivo, YouTube crea una transmisión predeterminada y una transmisión predeterminada para el canal. La transmisión define cómo el propietario del canal envía videos en vivo a YouTube, y la transmisión es la forma en que los usuarios pueden ver la transmisión predeterminada. El propietario de un canal puede usar los métodos liveStreams.list y liveBroadcasts.list para identificar estos recursos.Cuando un canal comienza a transmitir videos en su transmisión predeterminada, el video se puede ver en la transmisión predeterminada del canal. Cuando termina la transmisión, YouTube convierte la transmisión completa en un video de YouTube y le asigna un ID de video de YouTube. Después de que se completa la conversión, el video se incluye en la lista de videos subidos del canal. El video no está disponible inmediatamente después de que finaliza la transmisión, y la duración de la demora está relacionada con la duración real de la transmisión. |
snippet.liveChatId |
string Es el ID del chat en vivo de YouTube de la transmisión. Con este ID, puedes usar los métodos del recurso liveChatMessage para recuperar, insertar o borrar mensajes de chat. También puedes agregar o quitar moderadores de chat, prohibir que los usuarios participen en chats en vivo o quitar prohibiciones existentes. |
status |
object El objeto status contiene información sobre el estado del evento. |
status.lifeCycleStatus |
string Es el estado de la transmisión. El estado se puede actualizar con el método liveBroadcasts.transition de la API.Los valores válidos para esta propiedad son los siguientes:
|
status.privacyStatus |
string Es el estado de privacidad de la transmisión. Ten en cuenta que la transmisión representa exactamente un video de YouTube, por lo que la configuración de privacidad es idéntica a la que se admite para los videos. Además, puedes configurar este campo modificando el recurso de transmisión o configurando el campo privacyStatus del recurso de video correspondiente.Los valores válidos para esta propiedad son los siguientes:
|
status.recordingStatus |
string Es el estado de grabación de la transmisión. Los valores válidos para esta propiedad son los siguientes:
|
status.madeForKids |
boolean Este valor indica si la transmisión está destinada a niños. Este valor de propiedad es de solo lectura. |
status.selfDeclaredMadeForKids |
boolean En una solicitud liveBroadcasts.insert , esta propiedad permite al propietario del canal designar la transmisión como dirigida a niños. En una solicitud liveBroadcasts.list , el valor de la propiedad solo se muestra si el propietario del canal autorizó la solicitud a la API. |
contentDetails |
object El objeto contentDetails contiene información sobre el contenido de video del evento, como si se puede mostrar en un reproductor de video incorporado o si se archivará y, por lo tanto, estará disponible para su visualización después de que finalice el evento. |
contentDetails.boundStreamId |
string Este valor identifica de forma única el live stream vinculado a la transmisión. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime Es la fecha y hora en que se actualizó por última vez la transmisión en vivo a la que hace referencia boundStreamId . |
contentDetails.monitorStream |
object El objeto monitorStream contiene información sobre la transmisión del monitor, que el publicador puede usar para revisar el contenido del evento antes de que se muestre públicamente. |
contentDetails.monitorStream.enableMonitorStream |
boolean Este valor determina si la transmisión continua de supervisión está habilitada para la transmisión. Si la transmisión del monitor está habilitada, YouTube transmitirá el contenido del evento en una transmisión especial destinada solo para el consumo del publicador. La emisora puede usar la transmisión para revisar el contenido del evento y también para identificar los momentos óptimos en los cuales insertar puntos de inserción. Debes establecer este valor en true si deseas tener un escenario testing para tu transmisión o si quieres tener una demora de transmisión para tu evento. Además, si el valor de esta propiedad es true , debes realizar la transición de tu transmisión al estado testing antes de poder realizar la transición al estado live . (Si el valor de la propiedad es false , tu transmisión no puede tener una etapa testing , por lo que puedes hacer la transición de la transmisión directamente al estado live ).Cuando update a broadcast , esta propiedad se debe establecer si tu solicitud a la API incluye la parte contentDetails en el valor del parámetro part . Sin embargo, cuando insert a broadcast , la propiedad es opcional y tiene un valor predeterminado de true .Importante: Esta propiedad no se puede actualizar una vez que la transmisión está en estado testing o live . |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Si configuraste la propiedad enableMonitorStream en true , esta propiedad determina la duración de la demora de la transmisión en vivo.Cuando update a broadcast , esta propiedad se debe establecer si tu solicitud a la API incluye la parte contentDetails en el valor del parámetro part . Sin embargo, cuando insert a broadcast , la propiedad es opcional y tiene un valor predeterminado de 0 . Este valor indica que la transmisión no tiene una demora. Nota: Esta propiedad no se puede actualizar una vez que la transmisión está en estado testing o live . |
contentDetails.monitorStream.embedHtml |
string Código HTML que incorpora un reproductor que reproduce la transmisión de monitor. |
contentDetails.enableEmbed |
boolean Este parámetro de configuración indica si el video de la transmisión se puede reproducir en un reproductor incorporado. Si decides archivar el video (con la propiedad enableArchive ), este parámetro de configuración también se aplicará al video archivado.Cuando usas update a broadcast , esta propiedad se debe establecer si tu solicitud a la API incluye la parte contentDetails en el valor del parámetro part . Sin embargo, cuando insert a broadcast , la propiedad es opcional y tiene un valor predeterminado de true .Nota: Esta propiedad no se puede actualizar una vez que la transmisión está en el estado testing o live . |
contentDetails.enableDvr |
boolean Este parámetro de configuración determina si los usuarios pueden acceder a los controles del DVR mientras miran el video. Los controles de DVR permiten al usuario controlar la experiencia de reproducción de video, ya que pueden pausar, retroceder o adelantar el contenido. El valor predeterminado de esta propiedad es true . Cuando update a broadcast , esta propiedad se debe establecer si tu solicitud a la API incluye la parte contentDetails en el valor del parámetro part . Sin embargo, cuando insert a broadcast , la propiedad es opcional y tiene un valor predeterminado de true .Importante: Debes establecer el valor en true y también establecer el valor de la propiedad enableArchive en true si deseas que la reproducción esté disponible inmediatamente después de que finalice la transmisión. Además, esta propiedad no se puede actualizar una vez que la transmisión está en el estado testing o live . |
contentDetails.recordFromStart |
boolean Este parámetro de configuración indica si YouTube comenzará a grabar automáticamente la transmisión después de que el estado del evento cambie a En vivo. El valor predeterminado de esta propiedad es true y solo se puede establecer en false si el canal de transmisión puede inhabilitar las grabaciones de las transmisiones en vivo.Si tu canal no tiene permiso para inhabilitar grabaciones y tratas de insertar una transmisión con la propiedad recordFromStart establecida en false , la API mostrará un error Forbidden . Además, si tu canal no tiene ese permiso e intentas actualizar una transmisión para establecer la propiedad recordFromStart en false , la API mostrará un error modificationNotAllowed .Cuando update a broadcast , esta propiedad se debe establecer si tu solicitud a la API incluye la parte contentDetails en el valor del parámetro part . Sin embargo, cuando insert a broadcast , la propiedad es opcional y tiene un valor predeterminado de true .Importante: También debes establecer el valor de la propiedad enableDvr en true si deseas que la reproducción esté disponible inmediatamente después de que finalice la transmisión. Si estableces el valor de esta propiedad en true , pero no estableces la propiedad enableDvr en true , es posible que haya una demora de alrededor de un día antes de que el video archivado esté disponible para la reproducción.Nota: Esta propiedad no se puede actualizar una vez que la transmisión está en estado testing o live . |
contentDetails.enableClosedCaptions |
boolean Esta propiedad dejó de estar disponible a partir del 17 de diciembre de 2015. En su lugar, usa la propiedad contentDetails.closedCaptionsType .Este parámetro de configuración indica si los subtítulos HTTP POST están habilitados para esta transmisión. Para los clientes de API que ya usan esta propiedad:
|
contentDetails.closedCaptionsType |
string Nota: Esta propiedad reemplaza la propiedad contentDetails.enableClosedCaptions .Esta propiedad indica si los subtítulos están habilitados para tu transmisión y, de ser así, qué tipo de subtítulos proporcionas:
|
contentDetails.projection |
string Es el formato de proyección de esta transmisión. El valor predeterminado de la propiedad es rectangular .Los valores válidos para esta propiedad son los siguientes:
|
contentDetails.enableLowLatency |
boolean Indica si esta transmisión se debe codificar para la transmisión de baja latencia. Una transmisión de baja latencia puede reducir el tiempo que tarda un video en ser visible para los usuarios que miran una transmisión, aunque también puede afectar la resolución para los usuarios de la transmisión. |
contentDetails.latencyPreference |
string Indica qué configuración de latencia usar para esta transmisión. Esta propiedad se puede usar en lugar de enableLowLatency , que no admite ultraLow .Una transmisión de baja latencia puede reducir la cantidad de tiempo que tarda el video en ser visible para los usuarios que miran una transmisión, aunque también puede afectar la fluidez de la reproducción. Una transmisión de ultrabaja latencia reduce aún más el tiempo que tarda el video en ser visible para los usuarios, lo que facilita la interacción con ellos, pero la latencia ultrabaja no admite subtítulos ni resoluciones superiores a 1080p. Los valores válidos para esta propiedad son los siguientes:
|
contentDetails.enableAutoStart |
boolean Indica si esta transmisión debe comenzar automáticamente cuando comienzas a transmitir video en el live stream vinculado. |
contentDetails.enableAutoStop |
boolean Indica si esta transmisión debe detenerse automáticamente alrededor de un minuto después de que el propietario del canal deja de transmitir video en la transmisión de video vinculada. |
statistics |
object El objeto statistics contiene estadísticas relacionadas con una transmisión en vivo. Los valores de estas estadísticas pueden cambiar durante la transmisión y solo se pueden recuperar mientras esta está en vivo. |
statistics.totalChatCount |
unsigned long Es la cantidad total de mensajes de chat en vivo asociados con la transmisión. La propiedad y su valor están presentes si el usuario puede ver la transmisión, tiene habilitada la función de chat en vivo y tiene al menos un mensaje. Ten en cuenta que esta propiedad no especificará un valor después de que finalice la transmisión. Por lo tanto, esta propiedad no identificaría la cantidad de mensajes de chat de un video archivado de una transmisión en vivo completada. |
monetizationDetails |
object El objeto monetizationDetails contiene información sobre los detalles de monetización de la transmisión, como si el automatizador de anuncios está activado o si se retrasa la inserción de anuncios durante el video. |
monetizationDetails.cuepointSchedule |
object El objeto cuepointSchedule especifica la configuración de automatización de anuncios para la
transmisión. |
monetizationDetails.cuepointSchedule.enabled |
boolean Este valor determina si los anuncios se insertan automáticamente en la transmisión. Si el valor es true , YouTube insertará automáticamente anuncios durante el video en la transmisión. El programa para publicar anuncios se determinará según el valor de los otros campos del objeto monetizationDetails.cuepointSchedule .
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Este valor especifica que YouTube no debe insertar anuncios durante la transmisión hasta la fecha y hora especificadas. El valor se especifica en formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). El valor se debe establecer en una fecha y hora futuras para pausar los anuncios. El valor del campo también se puede establecer en una fecha y hora futuras cercanas para reanudar los anuncios a medida que pasa el tiempo. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Este valor especifica la estrategia que YouTube debe seguir para programar puntos de inserción. Estos son los valores válidos:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Este valor especifica el intervalo, en segundos, entre la inserción automática de anuncios durante una transmisión. Por ejemplo, si el valor es 300 , YouTube puede insertar puntos de inserción de anuncios durante el video en intervalos de cinco minutos.Ten en cuenta que el valor especifica el tiempo entre el inicio de puntos de inserción sucesivos. Es decir, el intervalo no se mide desde el final de un punto de inserción hasta el inicio del siguiente. |