How Tos

Ingestar una emisión de YouTube Live

Sacar al aire una emisión pública de YouTube Live como fuente de un Live stream.

Available in: UI · API

Usa este how-to para ingestar una emisión pública de YouTube Live como fuente de un Live stream. El encoder ejecuta un ingest auxiliar dedicado que descarga la emisión y la republica en el bus interno del encoder; a partir de ahí la cadena de transcodificación y publicación lo trata como cualquier otra entrada.

Cuándo usar esto

Cuando la fuente del Live stream es una emisión pública de YouTube Live (escenario de redistribución, una contribución remota que se está espejando primero a YouTube, un canal de referencia 24/7, etc.). Para originar una emisión hacia YouTube desde tu propio encoder, este no es el flujo correcto — usa un Channel estándar (SDI, SRT, Stream) más un Destination RTMP apuntando al ingest de YouTube.

Prerrequisitos

  • La licencia C21LiveYouTube en la instancia de C21 Live Control. Sin ella, la API rechaza la creación con APIf807 y la UI oculta el tipo del selector.
  • La emisión objetivo está actualmente en directo y pública — no oculta, no privada, no solo para miembros. El Video ID de 11 caracteres es el valor tras ?v= en youtube.com/watch?v=<id> o tras / en youtu.be/<id>.
  • El deploy puede alcanzar YouTube desde su IP saliente. Si el deploy vive en una red de datacenter / cloud / VPS y la emisión falla el challenge anti-bot, debe haber un fichero de cookies exportado desde una cuenta de YouTube con sesión iniciada en el host encoder (detalle de despliegue — consúltalo con tu representante Cires21).
  • Un usuario con rol Operator o System Administrator.

Restricciones

  • El Video ID es el identificador público del lado consumidor — no es una stream key RTMP de YouTube Studio. Los dos valores son independientes.
  • Solo se aceptan name, description, alias y settings.youtube_video_id en este tipo de Channel. La configuración multi-audio, subtítulos y pistas de audio no es configurable — la API la descarta al guardar.
  • El regex del Video ID es ^[A-Za-z0-9_-]{11}$. Las violaciones de formato se rechazan con APIf001.

Via UI

Navegación: Sources → Add source.

Elige el tipo

Abre Add source y pon Type en Youtube Live. (La opción es visible solo si está presente la licencia C21LiveYouTube.)

Rellena el editor

Etiqueta UIValor
NameIdentificador estable reutilizado por UI, API y logs.
DescriptionDescripción libre opcional.
AliasAlias opcional.
YouTube Video IDEl Video ID de 11 caracteres. El hint inline muestra "This is the public Video ID of a YouTube Live broadcast — not a stream key from YouTube Studio."

Las secciones de multi-audio, subtítulos y pistas de audio quedan ocultas para este tipo de Channel. Guarda.

Enlaza a un Live stream

Abre el Live stream destino en el editor de Live streams y elige este Channel como Source. Guarda.

Arranca

Arranca el Live stream desde On air o desde el detalle del Live stream. El contenedor de ingest auxiliar arranca, descarga la emisión y la republica en el bus interno; el entrypoint Channel del broadcast se pone verde en la fila de On air cuando empiezan a fluir frames.

Via API

AcciónMétodo + rutaoperationId
Crear el ChannelPOST /c21apiv2/channelsaddChannel
curl -X POST "https://<tu-host>/c21apiv2/channels" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "YT Lofi 24/7",
    "alias": "yt-lofi",
    "description": "Feed musical de referencia",
    "type": "Youtube Live",
    "settings": {
      "youtube_video_id": "jfKfPfyJRdk"
    }
  }'

El servidor descarta cualquier otra clave de settings. El blob persistido es exactamente {youtube_video_id: <id>}. Una vez guardado, enlaza el Channel a un Live stream con PUT /c21apiv2/livestreams/{id} y arráncalo con POST /c21apiv2/livestreams/{id}/start (operationId startLivestream). Consulta Arrancar y detener un Live stream.

Verificar

  • El Channel aparece en Sources con su Video ID y la Watch URL derivada (https://www.youtube.com/watch?v=<id>) en el panel de detalle.
  • Tras enlazar a un Live stream y arrancarlo, la fila del Live stream en On air muestra el entrypoint Channel sano y empieza a producir salida a los Destinations enlazados.
  • El log de events del broadcast muestra una línea confirmando que se añadió la entrada YouTube Live (el encoder loguea Adding Youtube Live input with Video ID '<id>' al levantar la entrada).

Resolución de problemas

  • APIf807 al guardar — la licencia C21LiveYouTube falta o está expirada. El tipo de Channel sigue en el contrato API pero las mutaciones se rechazan. Verifica la licencia en Licencias.
  • APIf001 al guardar — el Video ID no cumple ^[A-Za-z0-9_-]{11}$. Comprueba la longitud y el charset; recorta espacios al principio o al final.
  • El Channel arranca pero la emisión nunca produce frames — la emisión ya no está en directo, se cambió a oculta o privada, o YouTube devolvió el challenge anti-bot en la IP del deploy. Si la emisión está confirmada en directo y accesible desde un navegador normal, el ingest está probablemente bloqueado a nivel de red — coordina con tu representante Cires21 el despliegue de un fichero de cookies en el encoder.
  • El Live stream se reinicia tras ~30 s sin producir salida — la versión del encoder es anterior al fix de watchdog para el contenedor YouTube Live. Actualiza el encoder a la release actual.

FAQ

Copyright © 2026