Arrancar y detener un Live stream
Available in: UI · API
Usa este how-to para arrancar un Live stream configurado en el encoder correcto y detenerlo de nuevo. Tanto la UI como la API pública atacan el mismo backend — elige la superficie que mejor se adapte a tu caller.
Cuándo usar esto
Cuando un servicio, un scheduler externo, un script de automatización o un operador necesite poner un Live stream en el aire. Para arranques supervisados dirigidos por calendario, usa el Scheduler.
Prerrequisitos
- El identificador numérico de un Live stream ya configurado (con Channel, Encoding y Destination enlazados). Léelo de la lista Live streams o de
GET /c21apiv2/livestreams. - Un usuario con rol Operator o System Administrator. Ambos pueden arrancar y detener Live streams.
- Para llamadas API: un API token válido emitido desde Preferences → API tokens. Consulta API → Autenticación.
- Una licencia válida de producto C21 Live Control en la instancia. Consulta Licencias.
Via UI
Navegación: Live streams → <nombre> o On air. Seleccionar una fila en On air expone los botones Start / Stop en la barra de herramientas.
Abre el Live stream
En la lista Live streams (menú lateral), elige la fila del Live stream que vas a sacar al aire; o, si ya está corriendo, abre On air.
Pulsa Start
El botón Start de la barra abre el diálogo Start with options. Elige el Encoder group y el Preferred encoder; el selector recuerda la última elección en este dispositivo (una instalación con un único encoder solo ve el selector una vez).
Confirma
La UI presenta el diálogo Start Live stream:
Do you want to start this Live stream?
Acción primaria: Start Live stream. Acción secundaria: Cancel. Al confirmar, la fila aparece en On air y transita a Live en pocos segundos.
Detén
Pulsa el botón Stop. El texto del diálogo depende de si el broadcast se arrancó manualmente o por el Scheduler:
- Regular: "Do you want to stop this Live stream?"
- Scheduled: "Do you want to stop this Scheduled Live stream?" con la segunda línea "The associated Schedule will be deleted." — al confirmar se elimina también el Schedule activo.
Via API
El ciclo de vida de un Live stream vive en /c21apiv2/livestreams/{livestreamId}:
| Acción | Método + ruta | operationId |
|---|---|---|
| Precondiciones de arranque | GET /c21apiv2/livestreams/{livestreamId}/start/config | getLivestreamStartConfig |
| Arrancar | POST /c21apiv2/livestreams/{livestreamId}/start | startLivestream |
| Estado | GET /c21apiv2/livestreams/{livestreamId}/status | getLivestreamStatus |
| Detalle | GET /c21apiv2/livestreams/{livestreamId} | getLivestreamById |
| Detener | POST /c21apiv2/livestreams/{livestreamId}/stop | stopLivestream |
Pasa el API token en la cabecera bearer estándar — Authorization: Bearer <YOUR_API_TOKEN> — en cada llamada.
Arranque
curl -s "https://<tu-host>/c21apiv2/livestreams/<livestreamId>/start/config" \
-H "Authorization: Bearer <YOUR_API_TOKEN>"
getLivestreamStartConfig devuelve el último startConfig[] guardado, el encoder group preferido y el boolean startAllowed. startAllowed = false significa que al Live stream le falta enlazar Channel, Encoding o Destination.
curl -X POST "https://<tu-host>/c21apiv2/livestreams/<livestreamId>/start" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Idempotency-Key: <clave-única-por-arranque>" \
-H "Content-Type: application/json" \
-d '{ "idEncoderGroup": <de la respuesta de config>, "startConfig": [] }'
Idempotency-Key se aplica en startLivestream; repetir la misma clave devuelve la respuesta original sin volver a ejecutar el arranque.
Sondea el estado
curl -s "https://<tu-host>/c21apiv2/livestreams/<livestreamId>/status" \
-H "Authorization: Bearer <YOUR_API_TOKEN>"
LiveStream.status toma uno de cuatro valores:
status | Etiqueta en UI | Significado |
|---|---|---|
0 | Off | parado / inactivo |
1 | (transitorio) | arrancando |
2 | Live | en emisión |
3 | (transitorio) | error / fallo |
Detén
curl -X POST "https://<tu-host>/c21apiv2/livestreams/<livestreamId>/stop" \
-H "Authorization: Bearer <YOUR_API_TOKEN>"
stopLivestream no aplica Idempotency-Key — detener un Live stream ya parado es un no-op seguro. El stop público no toca ningún Schedule; para detener un broadcast programado y eliminar su Schedule en un solo paso, replica el flujo de la UI (lista y borra el Schedule activo del Live stream).
Verificar
- La fila en On air muestra Live y las flechas de entrypoints están en verde.
- Un
getLivestreamStatusposterior devuelvestatus = 2. - Tras el stop, la fila sale de On air;
getLivestreamStatusdevuelvestatus = 0.
FAQ
addChannel, addLivestream, startLivestream, addSchedule y executeEditor. stopLivestream no requiere clave de idempotencia porque detener un Live stream ya parado es un no-op seguro.dry_run. Usa getLivestreamStartConfig para inspeccionar las precondiciones antes de hacer POST al arranque; esa llamada es solo lectura y expone el boolean startAllowed.stopLivestream público no toca el Schedule; replica el flujo de la UI si quieres ambas acciones.Preferences → API tokens, cambia la integración al nuevo valor, confirma que funciona y revoca el antiguo. Consulta API → Autenticación.