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.
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.