LiveStreams

Un recurso liveStream contiene información sobre la transmisión de video que envías 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 liveStreams:

list
Devuelve una lista de transmisiones de video que coinciden con los parámetros de solicitud de la API. Pruébala ahora.
insertar
Crea una transmisión de video. La transmisión te permite enviar tu video a YouTube, que luego puede transmitirlo a tu público. Pruébala ahora.
actualización
Actualiza una transmisión de video. Si no se pueden actualizar las propiedades que deseas cambiar, debes crear una transmisión nueva con la configuración adecuada. Pruébala ahora.
borrar
Borra una transmisión de video. Pruébala ahora.

Representación de recursos

En la siguiente estructura JSON, se 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 la API. El valor será youtube#liveStream.
etag etag
Es la etiqueta de Etag de este recurso.
id string
Es el ID que YouTube asigna para identificar de forma única la transmisión.
snippet object
El objeto snippet contiene detalles básicos sobre la transmisión, incluido su canal, título y descripción.
snippet.publishedAt datetime
Es la fecha y hora en que se creó la transmisión. 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 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
Es la descripción de la transmisión. El valor no puede tener más de 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 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 del canal.

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.

La transmisión predeterminada de un canal existe de forma indefinida, no tiene una hora de inicio ni de finalización asociada y no se puede borrar. El propietario del canal solo debe comenzar a enviar bits de video para que la transmisión continúe automáticamente.

Cuando finaliza una transmisión, YouTube convierte la transmisión completa en un video de YouTube y le asigna un ID de video de YouTube. Una vez que se complete la conversión, el video se incluirá 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 se relaciona 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 desde el 18 de abril de 2016 y ya no se admitirá a partir del 17 de agosto de 2020. Las solicitudes que aún usen esta propiedad a partir de esa fecha fallarán.

En su lugar, usa las propiedades cdn.frameRate y cdn.resolution para especificar la frecuencia de fotogramas y la resolución por separado.
cdn.ingestionType string
Es el método o protocolo que se usa 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 y que necesitas para transmitir tu transmisión a YouTube.
cdn.ingestionInfo.streamName string
Es el nombre de la transmisión que YouTube asigna a la transmisión de video.
cdn.ingestionInfo.ingestionAddress string
Es la URL de transferencia principal que debes usar para transmitir videos a YouTube si usas RTMP, DASH o HLS. Debes transmitir el video a esta URL.

Según la aplicación o herramienta que uses para codificar la transmisión de video, es posible que debas ingresar la URL y el nombre de la transmisión por separado, o bien que debas concatenarlos en el siguiente formato:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
Es la URL de transferencia de copia de seguridad que debes usar para transmitir videos a YouTube si usas RTMP, DASH o HLS. Tienes la opción de transmitir simultáneamente el contenido que envías 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 herramienta que uses para codificar la transmisión de video, es posible que debas ingresar la URL y el nombre de la transmisión por separado o que debas 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 videos a YouTube si usas RTMPS.
cdn.resolution string
Es 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 este parámetro de configuración para indicar que YouTube debe detectar automáticamente la resolución del video que se transmite. También debes configurar cdn.frameRate como variable.
    Consulta el Centro de ayuda de YouTube para conocer la configuración recomendada del codificador.
cdn.frameRate string
Es la velocidad de fotogramas de los datos de video entrantes.

Los valores válidos para esta propiedad son los siguientes:
  • 30fps
  • 60fps
  • variable: Usa este parámetro de configuración para indicar que YouTube debe detectar automáticamente la velocidad de fotogramas del video que se transmite. También debes configurar cdn.resolution como variable.
    Consulta el Centro de ayuda de YouTube para conocer 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: El flujo está en estado activo, lo que significa que el usuario recibe datos a través de él.
  • created: Se creó la transmisión, pero no tiene una configuración de CDN válida.
  • error: Existe una condición de error en el flujo.
  • inactive: El flujo está inactivo, lo que significa que el usuario no recibe datos a través de él.
  • 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 se puede usar 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 sea warning o peor.
  • ok: No hay problemas de configuración para los que la gravedad sea error.
  • bad: La transmisión tiene algunos problemas cuya gravedad es error.
  • noData: Los servidores de backend de las transmisiones en vivo de YouTube no tienen información sobre el estado de la transmisión.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Es la última vez que se actualizó el estado del flujo. 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.
status.healthStatus.configurationIssues[].severity string
Indica la gravedad del problema para la transmisión.

Los valores válidos para esta propiedad son los siguientes:
  • info: El video se transmite a los usuarios sin efectos adversos en el rendimiento.
  • warning: El video se transmite a los usuarios, pero el rendimiento no es óptimo.
  • error: El video no se puede transmitir a los usuarios.
status.healthStatus.configurationIssues[].reason string
Es una breve descripción del problema. En el documento Problemas de configuración de los recursos de transmisiones 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. Cuando sea posible, la descripción proporciona información para resolver el problema. En el documento Problemas de configuración de los recursos de transmisiones 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 se puede volver a usar, lo que significa que se puede vincular a varias transmisiones. Es común que los transmisores reutilicen la misma transmisión para muchas transmisiones diferentes si estas ocurren en diferentes momentos.

Si estableces este valor en false, la transmisión no se podrá volver a usar, lo que significa que solo se puede vincular a una transmisión. Los flujos no reutilizables difieren de los 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 después de que finalice la transmisión.
  • El método liveStreams.list no muestra las transmisiones no reutilizables si llamas al método y estableces el parámetro mine en true. La única forma de usar ese método para recuperar el recurso de una transmisión no reutilizable es usar el parámetro id para identificarla.