LiveStreams

Un recurso liveStream contiene información sobre la transmisión de video por Internet que estás transmitiendo a YouTube. La transmisión proporciona el contenido que se transmitirá a los usuarios de YouTube. Una vez creado, un recurso liveStream se puede vincular a uno o más recursos liveBroadcast.

Métodos

La API admite los siguientes métodos para los recursos de liveStreams:

list
Muestra una lista de transmisiones de video por Internet que coinciden con los parámetros de solicitud de la API. Pruébala ahora.
insertar
Crea una transmisión de video por Internet. Las novedades te permiten enviar tu video a YouTube, que luego puede transmitir el video a tu público. Pruébala ahora.
actualizar
Actualiza una transmisión de video por Internet. Si las propiedades que quieres cambiar no se pueden actualizar, debes crear una transmisión nueva con la configuración adecuada. Pruébala ahora.
borrar
Borra una transmisión de video por Internet. Pruébala ahora.

Representación de recursos

La siguiente estructura JSON muestra el formato de un recurso liveStreams:

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

Propiedades

La siguiente tabla define las propiedades que aparecen en este recurso:

Propiedades
kind string
Identifica el tipo de recurso de API. El valor será youtube#liveStream.
etag etag
Es la Etag de este recurso.
id string
ID que YouTube asigna para identificar de forma exclusiva la transmisión.
snippet object
El objeto snippet contiene detalles básicos sobre la transmisión, como el canal, el título y la descripción.
snippet.publishedAt datetime
Fecha y hora en que se creó la transmisión. El valor se especifica en el formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
ID que YouTube utiliza para identificar de forma exclusiva el canal que transmite la transmisión.
snippet.title string
Es el título de la transmisión. El valor debe tener entre 1 y 128 caracteres.
snippet.description string
La descripción de las novedades. El valor no puede superar los 10,000 caracteres.
snippet.isDefaultStream boolean
Esta propiedad dejará de estar disponible a partir del 1 de septiembre de 2020. En ese momento, YouTube dejará de crear una transmisión y una transmisión 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 es la transmisión predeterminada del canal.

Cómo funcionan las transmisiones predeterminadas

Cuando se habilita un canal de YouTube para transmitir en vivo, YouTube crea una transmisión predeterminada y una predeterminada para el canal. La transmisión define cómo el propietario del canal envía el video en vivo a YouTube, y la transmisión es la forma en que los espectadores 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.

La transmisión predeterminada de un canal existe de manera indefinida, no tiene una hora de inicio o de finalización asociada y no se puede borrar. El propietario del canal solo necesita comenzar a enviar bits de video y la transmisión continua automáticamente.

Cuando finaliza una transmisión, YouTube convierte la transmisión finalizada en un video de YouTube y le asigna una identificación de video. Una vez 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.
cdn object
El objeto cdn define la configuración de la red de distribución de contenidos (CDN) de la transmisión en vivo. Esta configuración proporciona detalles sobre la forma en que transmites tu contenido a YouTube.
cdn.format string
Esta propiedad dejó de estar disponible a partir del 18 de abril de 2016 y ya no será compatible a partir del 17 de agosto de 2020. Fallarán las solicitudes que aún usen esta propiedad desde esa fecha.

En su lugar, usa las propiedades cdn.frameRate y cdn.resolution para especificar la velocidad de fotogramas y la resolución por separado.
cdn.ingestionType string
Es el método o protocolo que se utiliza para transmitir la transmisión de video.

Los valores válidos para esta propiedad son los siguientes:
  • dash
  • hls
  • rtmp (que incluye RTMPS)
cdn.ingestionInfo object
El objeto ingestionInfo contiene información que YouTube proporciona para que puedas transmitir tu transmisión.
cdn.ingestionInfo.streamName string
Es el nombre de la transmisión que YouTube le asigna a la transmisión.
cdn.ingestionInfo.ingestionAddress string
La URL de transferencia principal que debes usar para transmitir videos a YouTube si usas RTMP, DASH o HLS. Debes transmitir video a esta URL.

Según la aplicación o la herramienta que uses para codificar la transmisión de video por Internet, es posible que debas ingresar la URL y el nombre de la transmisión por separado o que puedas concatenarlos en el siguiente formato:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
La URL de transferencia de respaldo que debes usar para transmitir video a YouTube si usas RTMP, DASH o HLS. Tienes la opción de transmitir el contenido que envías de forma simultánea a ingestionAddress a esta URL.
cdn.ingestionInfo.rtmpsIngestionAddress string
Es la URL de transferencia principal que debes usar para transmitir videos a YouTube si usas RTMPS. Debes transmitir video a esta URL.

Según la aplicación o la herramienta que uses para codificar la transmisión de video por Internet, es posible que debas ingresar la URL y el nombre de la transmisión por separado o que puedas concatenarlos en el siguiente formato:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
Es la URL de transferencia de respaldo que debes usar para transmitir video a YouTube si usas RTMPS.
cdn.resolution string
La resolución de los datos de video entrantes.

Los valores válidos para esta propiedad son los siguientes:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: Usa esta configuración para indicar que YouTube debe detectar automáticamente la resolución del video transmitido. También debes configurar cdn.frameRate como variable.
    Consulta el Centro de ayuda de YouTube para ver la configuración recomendada del codificador.
cdn.frameRate string
La velocidad de fotogramas de los datos de video entrantes.

Los valores válidos para esta propiedad son los siguientes:
  • 30fps
  • 60fps
  • variable: Usa esta opción para indicar que YouTube debe detectar automáticamente la velocidad de fotogramas de tu video transmitido. También debes configurar cdn.resolution como variable.
    Consulta el Centro de ayuda de YouTube para ver la configuración recomendada del codificador.
status object
El objeto status contiene información sobre el estado de la transmisión en vivo.
status.streamStatus string
Es el estado de la transmisión.

Los valores válidos para esta propiedad son los siguientes:
  • active: la transmisión está en estado activo, lo que significa que el usuario recibe datos a través de ella.
  • created: La transmisión se creó, pero no tiene una configuración de CDN válida.
  • error: existe una condición de error en la transmisión.
  • inactive: la transmisión está en estado inactivo, lo que significa que el usuario no recibe datos a través de ella.
  • ready: La transmisión tiene una configuración de CDN válida.
status.healthStatus object
Este objeto contiene información sobre el estado de la transmisión en vivo, que podría usarse para identificar, diagnosticar y resolver problemas de transmisión.
status.healthStatus.status string
Es el código de estado de esta transmisión.

Los valores válidos para esta propiedad son los siguientes:
  • good: No hay problemas de configuración para los que la gravedad es warning o peor.
  • ok: No hay problemas de configuración para los que la gravedad es error.
  • bad: la transmisión tiene algunos problemas para los que la gravedad es error.
  • noData: Los servidores de backend de transmisión en vivo de YouTube no tienen información sobre el estado de la transmisión.
status.healthStatus.lastUpdateTimeSeconds unsigned long
La última vez que se actualizó el estado de la transmisión. El valor refleja una marca de tiempo UNIX en segundos.
status.healthStatus.configurationIssues[] list
Este objeto contiene una lista de problemas de configuración que afectan la transmisión.
status.healthStatus.configurationIssues[].type string
Identifica el tipo de error que afecta la transmisión.
Problemas de configuración
audioBitrateHigh
Motivo:Verificar configuración de audio
Descripción:La frecuencia de bits actual de la transmisión de audio (%(actual)) es mayor que la frecuencia de bits recomendada. Te recomendamos que uses una tasa de bits de %(expected)s para la transmisión de audio.
audioBitrateLow
Motivo:Verificar configuración de audio
Descripción:La tasa de bits actual de la transmisión de audio ((%(actual)s)) es menor que el valor recomendado. Te recomendamos que uses una tasa de bits de %(expected)s para la transmisión de audio.
audioBitrateMismatch
Motivo:Verificar transmisión secundaria
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen frecuencias de bits de audio distintas. Debes configurar las transmisiones para que tengan la misma tasa de bits de audio.
audioCodec
Motivo:Verificar configuración de audio
Descripción:La transmisión de audio está codificada con un códec no admitido. Configura el códec de audio para la transmisión en un formato compatible (AAC, MP3).
audioCodecMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video usan códecs de audio diferentes. Debes configurar las transmisiones para que usen el mismo códec de audio.
audioSampleRate
Motivo:Verificar configuración de audio
Descripción:La tasa de muestreo actual es de %(actual). Los valores recomendados son 44.1 kHz y 48 kHz.
audioSampleRateMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen frecuencias de muestreo de audio distintas. Debes configurar las transmisiones para que tengan la misma tasa de muestreo de audio.
audioStereoMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principal y secundaria del video usan canales de audio distintos. Debes configurarlas para que tengan el mismo canal de audio.
audioTooManyChannels
Motivo:Verificar configuración de audio
Descripción:El audio tiene más de dos canales, pero solo se admite uno (mono) o dos (estéreos). Corrige la cantidad de canales de audio.
badContainer
Motivo:Configuración de video incorrecta
Descripción:Cambia el formato contenedor del video. El formato del contenedor actual no es correcto para esta configuración.
bitrateHigh
Motivo:Verificar configuración de video
Descripción:La frecuencia de bits actual de la transmisión ((%(actual)s)) es mayor que el valor recomendado. Te recomendamos que uses una tasa de bits de %(expected)s para la transmisión.
bitrateLow
Motivo:Salida de video baja
Descripción:La frecuencia de bits actual de la transmisión (%(actual)s) es menor que el valor recomendado. Te recomendamos que uses una tasa de bits de %(expected)s para la transmisión.
framerateMismatch
Motivo:Verificar transmisión secundaria
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen velocidades de fotogramas diferentes. Debes configurar las transmisiones para que tengan la misma velocidad de fotogramas.
frameRateHigh
Motivo:Velocidad de fotogramas alta
Descripción:La velocidad de fotogramas actual es demasiado alta. Establece la velocidad de fotogramas en %(framerate)s fps o menos.
gopMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen frecuencias de fotogramas clave diferentes. Debes configurar las transmisiones para que tengan la misma frecuencia de fotogramas clave.
gopSizeLong
Motivo:Configuración de video incorrecta
Descripción:Usa una frecuencia de fotogramas clave de cuatro segundos o menos. En la actualidad, los fotogramas no se envían con suficiente frecuencia, lo cual puede provocar el almacenamiento en búfer. La frecuencia de fotogramas actual es de %(actual_gop).1f segundos. Ten en cuenta que los errores de transferencia pueden provocar tamaños de GOP (grupos de imágenes) incorrectos.
gopSizeOver
Motivo:Verificar configuración de video
Descripción:Usa una frecuencia de fotogramas clave de cuatro segundos o menos. En la actualidad, los fotogramas clave no se envían con suficiente frecuencia, lo que puede causar almacenamiento en búfer. La frecuencia de fotogramas actual es de %(actual_gop).1f segundos. Ten en cuenta que los errores de transferencia pueden provocar tamaños de GOP (grupos de imágenes) incorrectos.
gopSizeShort
Motivo:Verificar configuración de video
Descripción:El tamaño del GOP es muy pequeño, lo que puede reducir la calidad de la imagen. La frecuencia de fotogramas clave recomendada es de cuatro segundos. La frecuencia de fotogramas actual es de %(actual_gop).1f segundos. Ten en cuenta que los errores de transferencia pueden provocar tamaños de GOP incorrectos.
multipleAudioStreams
Motivo:Verificar configuración de audio
Descripción:La transmisión de transferencia contiene varias transmisiones de audio, pero debe contener solo una transmisión de audio.
multipleVideoStreams
Motivo:Configuración de video incorrecta
Descripción:La transmisión de transferencia contiene varias transmisiones de video por Internet, pero debe contener solo una transmisión de video por Internet.
noAudioStream
Motivo:Sin audio
Descripción:La transmisión de transferencia no contiene ninguna transmisión de audio, pero debe contener exactamente una transmisión de audio.
noVideoStream
Motivo:Sin video
Descripción:La transmisión de transferencia no contiene ninguna transmisión de video por Internet, pero debe contener exactamente una transmisión de video por Internet.
openGop
Motivo:Configuración de video incorrecta
Descripción:Cambia la configuración del codificador de video a “grupo de imágenes (GOP) cerrado”. Al parecer, está configurada como “GOP abierto”. YouTube no admite esta función.
resolutionMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen resoluciones diferentes. Debes configurar las transmisiones para que tengan la misma resolución.
videoBitrateMismatch
Motivo:Verificar transmisión secundaria
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen frecuencias de bits de video distintas. Debes configurar las transmisiones para que tengan la misma tasa de bits de video.
videoCodec
Motivo:Configuración de video incorrecta
Descripción:El video está codificado con un códec no admitido. Configura el códec de video para la transmisión en un formato compatible (H.264).
videoCodecMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video usan códecs de video diferentes. Debes configurar las transmisiones para que tengan los mismos códecs de video.
videoIngestionStarved
Motivo:Salida de video baja
Descripción:YouTube no está recibiendo suficiente video para mantener una transmisión continua. Por lo tanto, los espectadores experimentarán el almacenamiento en búfer.
videoInterlaceMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen entrelazados distintos. Debes configurar las transmisiones para que tengan el mismo entrelazado.
videoProfileMismatch
Motivo:Transmisión secundaria incorrecta
Descripción:En la configuración actual, las transmisiones principales y de seguridad del video tienen perfiles diferentes. Debes configurar las transmisiones para que tengan el mismo perfil.
videoResolutionSuboptimal
Motivo:Verifica la resolución
Descripción:Verifica la resolución del video. La resolución actual es (%(actual_w)dx%(actual_h)d), que no es óptima.
videoResolutionUnsupported
Motivo:Esta resolución no es compatible
Descripción:Debes cambiar la resolución del video. La resolución actual es (%(actual_w)dx%(actual_h)d) y no es compatible con esta configuración. La resolución de video esperada es (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
Indica qué tan grave es el problema con la transmisión.

Los valores válidos para esta propiedad son los siguientes:
  • info: el video se transmite a los espectadores sin efectos negativos para el rendimiento.
  • warning: el video se transmite a los espectadores, pero el rendimiento no es óptimo.
  • error: el video no se puede transmitir a los espectadores.
status.healthStatus.configurationIssues[].reason string
Una descripción breve del problema. En el documento Problemas de configuración de los recursos de transmisión en vivo, se identifica el motivo asociado con cada tipo de problema de configuración.
status.healthStatus.configurationIssues[].description string
Una descripción detallada del problema. Si es posible, la descripción brinda información acerca de cómo resolver el problema. En el documento Problemas de configuración de los recursos de transmisión en vivo, se enumeran todos los tipos de problemas de configuración y sus descripciones asociadas.
contentDetails object
El objeto content_details contiene información sobre la transmisión, incluida la URL de transferencia de subtítulos.
contentDetails.closedCaptionsIngestionUrl string
Es la URL de transferencia a la que se envían los subtítulos de esta transmisión.
contentDetails.isReusable boolean
Indica si la transmisión es reutilizable, lo que significa que puede vincularse a varias transmisiones. Es común que las emisoras vuelvan a usar la misma transmisión para muchas transmisiones diferentes si se producen en momentos diferentes.

Si estableces este valor en false, la transmisión no podrá volver a usarse, lo que significa que solo podrá vincularse a una transmisión. Las transmisiones no reutilizables se diferencian de las transmisiones reutilizables de las siguientes maneras:
  • Una transmisión no reutilizable solo se puede vincular a una transmisión.
  • Es posible que un proceso automatizado borre una transmisión no reutilizable una vez que finalice la transmisión.
  • El método liveStreams.list no muestra transmisiones no reutilizables si llamas al método y configuras el parámetro mine en true. La única forma de usar ese método a fin de recuperar el recurso para una transmisión no reutilizable es usar el parámetro id a fin de identificar la transmisión.