Contribuir una señal en directo a MediaCopilot Live
Available in: UI · API
Usa este how-to para enviar la salida HLS de un Live stream en emisión a MediaCopilot en tiempo real. La contribución llega al lado de MediaCopilot como un live asset sobre el que los pipelines del tenant (transcripción, subtitulado, enriquecimiento de metadatos) pueden trabajar.
Cuándo usar esto
Cuando el broadcast en directo deba llegar a MediaCopilot en tiempo real — para transcripción, subtitulado o enriquecimiento de metadatos en vivo, o cualquier pipeline de MediaCopilot Live que opere sobre un feed en marcha. Para entregar un clip a partir de una grabación finalizada, usa el flujo Editor → MediaCopilot.
Prerrequisitos
- Una cuenta de MediaCopilot contratada a través de Cires21. MediaCopilot es un producto de Cires21 contratado por separado; C21 Live Control no lo aprovisiona. La cuenta, su URL de tenant y la API key que necesita Live Control los emite Cires21 como parte del contrato de servicio. Consulta MediaCopilot integration para el modelo de cuenta.
- La integración MediaCopilot configurada en Live Control. Un setup único bajo Integrations → MediaCopilot (System Administrator): pega la API key y (cuando Cires21 emita un tenant específico) sobreescribe la URL. Guarda.
- Un par de credenciales por-Destination emitido por MediaCopilot — un Access Key ID y un Secret Access Key. Son distintos de la API key del tenant y los usa el encoder de Live Control cuando empuja el feed HLS al ingest de MediaCopilot. Obtenlos de tu tenant de MediaCopilot.
- Un Live stream ya configurado que pueda enlazarse al nuevo Destination. El Channel enlazado debe producir un feed que cumpla las restricciones de MediaCopilot HLS documentadas abajo.
- Rol requerido. System Administrator para registrar el Destination y la integración; Operator (o System Administrator) para enlazarlo a un Live stream y ejecutar el broadcast.
Este flujo no requiere la licencia C21LiveEditor — esa licencia solo gobierna el flujo Editor / VOD post-emisión. La contribución en directo funciona desde cualquier instancia de Live Control con una licencia de producto válida.
Restricciones a tener en cuenta
El camino de MediaCopilot Live usa un Destination HLS / TS con un comportamiento específico del proveedor. La UI lo impone y el encoder lo respeta:
- Type = HLS / TS y Provider = MediaCopilot son la única combinación válida. La lista
notFordel proveedor enpublishingProvidersexcluye todos los demás tipos (DASH, CMAF, RTMP, Enhanced RTMP, SRT, STREAM). El selector del editor oculta la opción MediaCopilot cuando hay cualquier otro tipo seleccionado. - Los subtítulos no se entregan. Cuando el Live stream lleva pistas de subtítulos, el broadcast publishing config muestra "Subtitles not supported for MediaCopilot"; el selector de subtítulos queda deshabilitado para este Destination y cualquier selección previa se limpia al guardar.
- Se entrega como mucho una pista de audio. Cuando la fuente del Live stream lleva múltiples pistas de audio, el broadcast publishing config muestra "Only one audio track is allowed for MediaCopilot" y acepta una única selección. Elegir una segunda pista se rechaza desde la UI.
- Los campos Username / Password del editor se renombran a Access Key ID / Secret Access Key cuando Provider = MediaCopilot y Type = HLS / TS. Los valores se almacenan cifrados y nunca se devuelven en claro (las lecturas devuelven el centinela enmascarado).
Via UI
Configura la integración MediaCopilot (una vez)
Navegación: Integrations → MediaCopilot (System Administrator).
| Etiqueta UI | Qué rellenar |
|---|---|
| API Key | La API key de MediaCopilot emitida por Cires21. |
| URL | La URL del tenant de MediaCopilot. Déjalo vacío para usar el tenant por defecto; sobreescríbelo cuando Cires21 emita un tenant específico. |
| API URL | La URL de la API de MediaCopilot (cuando Cires21 emita un valor específico). |
Pulsa Save. Un toast de éxito confirma "MediaCopilot configuration saved". El indicador junto a la leyenda muestra Configured.
Crea el Destination
Navegación: Destinations → Add destination.
| Etiqueta UI | Campo API | Valor |
|---|---|---|
| Name | name | Un identificador estable reutilizado por la UI, API y logs (p.ej. MediaCopilot Live — Studio A). |
| Type | type | HLS / TS. |
| Provider | settings_common.provider | MediaCopilot. |
| Stream | settings_common.stream | El nombre de stream que espera el tenant de MediaCopilot. |
| Access Key ID | settings_common.username | El Access Key ID del tenant de MediaCopilot. |
| Secret Access Key | settings_common.password | El secreto emparejado. Se almacena cifrado; las lecturas posteriores lo devuelven redactado. |
En Settings → Extra → HLS, configura los knobs settings_extra.hls.* (segments, duration y el resto de la familia HLS) según las expectativas del ingest de tu tenant de MediaCopilot.
Guarda el formulario.
Enlaza el Destination a un Live stream
Abre el Live stream destino en el editor de Live streams. Añade el nuevo Destination bajo Destinations (o un Destination group que lo contenga).
En el broadcast publishing config para la fila MediaCopilot:
- Si el Channel enlazado lleva múltiples pistas de audio, el selector se reduce a una con el mensaje "Only one audio track is allowed for MediaCopilot". Elige la pista a entregar.
- Si el Channel enlazado lleva pistas de subtítulos, el selector de subtítulos queda deshabilitado con el tooltip "Subtitles not supported for MediaCopilot".
Guarda el Live stream.
Arranca el Live stream
Arranca el broadcast desde On air o desde la página de detalle del Live stream. El diálogo muestra "Do you want to start this Live stream?"; la acción primaria es Start Live stream. Consulta Arrancar y detener un Live stream.
El Destination MediaCopilot se activa en el indicador per-Destination de la fila on-air. El feed en directo se contribuye a MediaCopilot en tiempo real; el activo aparece en el lado de MediaCopilot bajo la vista de live-assets del tenant.
Via API
Cada llamada usa la cabecera bearer estándar Authorization: Bearer <YOUR_API_TOKEN>.
Configura la integración
| Acción | Método + ruta | Notas |
|---|---|---|
| Actualizar la integración MediaCopilot | PUT /c21apiv2/system/mediacopilot | Persiste apiKey, url y apiUrl. La ruta aliasada /c21apiv2/settings/integrations/mediacopilot resuelve al mismo handler. Solo System Administrator. |
curl -X PUT "https://<tu-host>/c21apiv2/system/mediacopilot" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"apiKey": "<API key de MediaCopilot>",
"url": "<URL del tenant (opcional)>",
"apiUrl": "<URL de API (opcional)>"
}'
Las lecturas de apiKey devuelven el centinela •••••••• — repetir el centinela en escritura preserva la clave almacenada.
Crea el Destination
| Acción | Método + ruta | operationId |
|---|---|---|
| Crear un Destination | POST /c21apiv2/publishings | addPublishing |
curl -X POST "https://<tu-host>/c21apiv2/publishings" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "MediaCopilot Live — Studio A",
"type": "HLS / TS",
"settings_common": {
"provider": "MediaCopilot",
"stream": "<nombre de stream del tenant>",
"username": "<Access Key ID>",
"password": "<Secret Access Key>"
},
"settings_extra": {
"hls": { "segments": 6, "duration": 4 }
}
}'
settings_common.username y settings_common.password son los nombres de campo de la API; la UI los renombra a Access Key ID / Secret Access Key solo cuando provider = MediaCopilot y type = HLS / TS. El shape en el wire no cambia.
Enlaza el Destination al Live stream
| Acción | Método + ruta | operationId |
|---|---|---|
| Actualizar un Live stream | PUT /c21apiv2/livestreams/{livestreamId} | updateLivestream |
Añade el Destination a los Destinations enlazados del Live stream (junto con cualquier otro Destination al que ya emita). Consulta el esquema LiveStream para el shape del payload.
Arranca y detén el broadcast
| Acción | Método + ruta | operationId |
|---|---|---|
| Arrancar | POST /c21apiv2/livestreams/{livestreamId}/start | startLivestream |
| Detener | POST /c21apiv2/livestreams/{livestreamId}/stop | stopLivestream |
Consulta API → Overview para el envelope estándar y Pagination and errors para el manejo de errores.
Verificar
- El Destination se activa en el indicador per-Destination de la fila del Live stream en On air.
- En el lado de MediaCopilot, el live asset aparece en la vista de live-assets del tenant en el tiempo que el ingest tarda en exponer un feed HLS recién llegado.
- La pista de audio elegida en el broadcast publishing config coincide con la que MediaCopilot expone en el live asset.
- No se entregan pistas de subtítulos a MediaCopilot independientemente de las que lleve el Channel enlazado.
- Cuando se detiene el Live stream, el lado de Live Control simplemente deja de empujar; el live asset de MediaCopilot se cierra según su propio contrato.
Resolución de problemas
- El Destination no guarda con MediaCopilot seleccionado. Verifica que Type sea HLS / TS. La regla
notFordel proveedor impide guardar cualquier otro tipo de Destination. - Errores de subtítulos o multi-audio al guardar el Live stream. Abre el broadcast publishing config para el Destination MediaCopilot, limpia cualquier selección de subtítulos y reduce el audio a una pista. La restricción se aplica al guardar.
- Fallos de autenticación en el lado de MediaCopilot al arrancar. Verifica que el Access Key ID y el Secret Access Key del Destination coincidan con lo que emitió el tenant de MediaCopilot. Los valores están cifrados; si dudas de alguno, vuelve a pegarlo desde el tenant.
- Tenant inaccesible. Confirma que la instancia de Live Control puede alcanzar la URL del tenant configurada. La página Integrations → MediaCopilot muestra el estado como Configured o Not configured junto a la leyenda; título; un estado Configured solo significa que la API key está almacenada, no que el tenant sea alcanzable en este momento.
FAQ
C21LiveEditor. El flujo de contribución MediaCopilot Live aquí documentado empuja el feed HLS en marcha a MediaCopilot en tiempo real como un live asset y no requiere la licencia C21LiveEditor — solo la cuenta de MediaCopilot contratada por Cires21 y la integración MediaCopilot configurada en Live Control.