Sources

Qué es una Source
Sources es la sección del menú lateral que cataloga cada feed de entrada que C21 Live Control puede ingestar. La entidad subyacente es un Channel — el objeto que manipula la API y que edita el editor. Los dos términos aparecen juntos por toda la UI: la acción de la barra es "Add source", y el editor edita un Channel.
Un Channel es independiente del Live stream que lo consume: el mismo Channel puede alimentar muchos Live streams (uno a la vez por binding de Live stream).
Cómo funciona
Define
Pulsa Add source y rellena el editor. El campo type del Channel es la elección más importante — cada otro campo depende de él.
Enlaza
Desde el editor de Live streams, elige este Channel en el campo Source. El mismo Channel puede enlazarse a muchas definiciones de Live stream.
Tipos de Channel
Channel.type expone un conjunto fijo de valores. La agrupación cara al cliente es:
| Tipo | Notas |
|---|---|
| File | Un fichero de medios reproducido de manera continua como señal en directo. Útil para carátulas (slates), intros, loops de fallback y pruebas. |
| SDI | Entrada SDI física en un encoder de estudio. |
| AES/EBU | Entrada de audio digital independiente. |
| NDI | Un stream NDI anunciado en la red local. El editor puede descubrir fuentes automáticamente o aceptar un nombre de stream tecleado a mano. |
| SRT | Contribución desde campo o un relay partner, en modo caller o listener, con cifrado opcional y latencia configurable. |
| Stream | Pulls IP sobre HLS, RTMP, HTTP, RTP o UDP multicast (por ejemplo udp://@239.0.0.1:1234 o una playlist https:// HLS). |
| Stream – C21 Live Cloud | Ingest en modo push que termina en la plataforma C21 Live Cloud. Se aceptan tres variantes de transporte: RTMP, SRT y UDP-R. La descripción del Channel en la lista muestra qué subtipo concreto está en uso (por ejemplo Stream – C21 Live Cloud con descripción C21LiveCloud RTMP Input Demo para una entrada RTMP-Push). |
| Youtube Live | Ingesta una emisión pública de YouTube Live por su Video ID de 11 caracteres. Controlado por la licencia C21LiveYouTube. Consulta la subsección Youtube Live abajo para el detalle del tipo de channel. |
El enum subyacente de la API (File, SDI, Stream, AES/EBU, RTMP-Push, UDP-R Cloud, SRT, SRT Cloud, NDI, Youtube Live) es estable entre versiones; la categoría cara al cliente Stream – C21 Live Cloud agrupa las variantes cloud de contribución (RTMP-Push, SRT Cloud, UDP-R Cloud) bajo una sola entrada que la UI presenta como un único tipo de Channel.
Youtube Live
Un Channel de tipo Youtube Live ingesta una emisión pública de YouTube Live como fuente de un Live stream. El encoder ejecuta un ingest auxiliar dedicado que extrae 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.
Gate de licencia
El tipo de channel está controlado por la licencia C21LiveYouTube. Sin ella:
- La opción Youtube Live queda oculta en el selector de tipo del editor de Channel.
- El flag de sesión que la UI consulta (
hasYoutubeLicense) esfalse. - Las llamadas API que crean o convierten un Channel a Youtube Live se rechazan con
APIf807(HTTP 403).
El valor Youtube Live permanece en el enum OpenAPI Channel.type independientemente del estado de licencia — el contrato es estable; solo las mutaciones están controladas.
Video ID, no stream key
El operador suministra el Video ID público de 11 caracteres que aparece tras ?v= en youtube.com/watch?v=<id> o tras / en youtu.be/<id>. No es la clave de stream RTMP de YouTube Studio que se usa para enviar desde OBS a rtmp://a.rtmp.youtube.com/live2/<KEY>. Las stream keys son credenciales privadas del emisor; esta funcionalidad ingesta el lado público de consumo del broadcast.
| Propiedad | Valor |
|---|---|
| Formato | Exactamente 11 caracteres. |
| Charset | [A-Za-z0-9_-] (Base64 URL-safe). |
| Regex | ^[A-Za-z0-9_-]{11}$. |
| Ejemplos | jfKfPfyJRdk, b4tE5aKhtlg. |
Enviar un valor que no cumpla el regex se rechaza con APIf001.
Editor de Channel
El editor de Channel renderiza solo los campos canónicos más el Video ID:
| Etiqueta UI | Campo API | Notas |
|---|---|---|
| Name | name | Nombre visible. |
| Description | description | Opcional. |
| Alias | alias | Alias opcional. |
| YouTube Video ID | settings.youtube_video_id | El Video ID de 11 caracteres. |
La configuración multi-audio, subtítulos y pistas de audio queda oculta para este tipo — el channel no acepta ninguna. El editor muestra un hint inline junto al campo: "This is the public Video ID of a YouTube Live broadcast — not a stream key from YouTube Studio."
Panel de detalle
La página de detalle del Channel muestra el Video ID y una Watch URL derivada (https://www.youtube.com/watch?v=<id>) para que el operador confirme la emisión en un navegador.
Consideraciones de red
YouTube aplica un challenge anti-bot a las peticiones que considera arriesgadas, basado principalmente en la reputación de la IP origen. En la práctica:
- IPs comerciales ISP / residenciales (donde viven la mayoría de instalaciones on-prem) suelen pasar sin challenge.
- IPs de datacenter / cloud / VPS se interrogan habitualmente; el ingest falla hasta que se permita al despliegue superar el desafío (challenge).
Cuando el deploy vive en una red marcada, se puede desplegar en el encoder un fichero de cookies exportado desde una cuenta de YouTube con sesión iniciada para evitar el challenge. La ruta de despliegue exacta es detalle de instalación — consúltala con tu representante Cires21.
Cross-links
- Ingestar una emisión de YouTube Live — how-to paso a paso (UI + API).
- Licencias — el modelo de licencia C21LiveYouTube.
Opciones comunes
| Opción | Notas |
|---|---|
| Name | Identificador estable reutilizado por UI, API y logs. |
| Type | Uno de los valores anteriores. |
| Endpoint / URL | URL listener, target caller, URL de playlist HLS, ruta de fichero o nombre de stream NDI — según el tipo. |
| Authentication | Passphrase SRT (con AES-128 / AES-256), credenciales HTTP para pulls Stream, y cualquier credencial específica del proveedor que requiera el tipo elegido. |
| Listening vs calling | Para SRT, si Live Control escucha al publisher o llama hacia él. |
| Latency target | Ventana de latencia SRT (ms); arbitra recuperación de pérdidas vs delay extremo a extremo. |
| Enabled | Desactiva un Channel sin borrarlo. |
Cross-links
- Live streams para el binding desde un Live stream a su Channel.
- Devices para los encoders físicos que alojan entradas SDI / AES/EBU.