Cut a clip in the Editor and send it to MediaCopilot
Available in: UI · API
Use this flow when a captured broadcast should feed MediaCopilot for transcription, subtitling or automated clip generation. The hand-off runs through the in-product Recordings Editor; submitting the export with MediaCopilot as the target executes executeEditor with command = exportMediaCopilot.
When to use this
When a finished Recording should be cut into a clip (or sent whole) and delivered to MediaCopilot for AI post-processing. For the integration reference see MediaCopilot. For the Recordings catalogue and the editor see Recordings and Recordings Editor.
Prerequisites
- A MediaCopilot account contracted through Cires21. C21 Live Control does not provision MediaCopilot; the tenant URL and the API token come from your Cires21 service contract. See MediaCopilot for the account model.
- The C21LiveEditor license on the Live Control instance. The Editor tab in Recordings is hidden when this license is absent; without the Editor there is no UI path to cut a clip and send it to MediaCopilot. See Licenses.
- The MediaCopilot integration is configured under
Integrations → MediaCopilot(a System Administrator one-time setup). - A finished Recording is available — the export runs after the Recording's
ended_atis set, that is, after the producing Live stream has stopped.
Via UI
Navigation: Recordings → Editor.
Open the Recording in the Editor
In the Recordings list, click the row of the Recording to export and open it in the Editor tab. The Editor's left panel shows the timeline with the captured renditions.
Pick the clip
In the Editor's export panel, set:
| UI label | API field | Notes |
|---|---|---|
| Quality | quality | One of the renditions captured in the Recording. |
| Time intervals | intervals | One or more in / out marks on the timeline; each carries a start and an end Unix timestamp. |
| Keyframe alignment | kfstart | When checked, the cut snaps to the closest keyframe so the first segment is not re-encoded. |
| Concatenate intervals | concat | When checked, intervals of the same bitrate are concatenated into one output. |
| Output encoding | encoding | One of ts, mp4, fmp4 or audio. |
Pick MediaCopilot as the target
In the export panel's Delivery picker, choose MediaCopilot. The picker only lists this target when the MediaCopilot integration is configured and the host carries the C21LiveEditor license.
Submit
Click Submit. The handler runs the cut and posts the resulting clip to MediaCopilot. The Editor's job side panel reports the export state; the asset appears in the MediaCopilot tenant when the upload completes.
Via API
| Action | Method + path | operationId |
|---|---|---|
| Execute the editor | POST /c21apiv2/editor/livestreams/{liveStreamId}/recordings/{recordingShortName}/execute | executeEditor |
Idempotency-Key is honoured on this route.
curl -X POST "https://<your-host>/c21apiv2/editor/livestreams/<livestreamId>/recordings/<recordingShortName>/execute" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Idempotency-Key: <unique-key>" \
-H "Content-Type: application/json" \
-d '{
"quality": 0,
"allbitrates": false,
"intervals": [
{ "start": 1747585200, "end": 1747588800 }
],
"kfstart": true,
"concat": false,
"encoding": "mp4",
"command": "exportMediaCopilot"
}'
The body matches RecordingEditorRequest exactly. Required fields: quality, allbitrates, intervals, kfstart, concat, encoding, command. exportMediaCopilot is an asynchronous command when sync = false; poll the editor job endpoint for the status.
The command field accepts a fixed enum:
command | Result |
|---|---|
download | Returns the cut bytes inline as Content-Type: application/force-download. Synchronous. |
ftp | Delivers to a remote FTP target. Asynchronous. |
sftp | Delivers to a remote SFTP target. Asynchronous. |
s3 | Delivers to an S3-compatible bucket. Asynchronous. |
exportMediaCopilot | Delivers to the configured MediaCopilot tenant. Asynchronous. |
Verify
- The MediaCopilot side receives the asset and lists it in its asset catalogue.
- The Recording's row on the Recordings list keeps the same canonical fields (
name,duration_seconds,size_bytes,qualities,started_at,ended_at) — the export does not mutate the source Recording.
FAQ
intervals array accepts one or more {start, end} ranges. With concat = true, intervals of the same bitrate are concatenated into one output.ended_at: null in that case), but the cut is bounded by the segments that have already been written at the moment the export is submitted. For a fully predictable hand-off, wait for the Live stream to stop so the Recording closes.Integrations → MediaCopilot. The token is stored encrypted at rest and never returned by GET.