How Tos

Contribute a live signal to MediaCopilot Live

Push the HLS output of a Live stream to MediaCopilot in real time so it appears as a live asset on the MediaCopilot side.

Available in: UI · API

Use this how-to to push the HLS output of a running Live stream to MediaCopilot in real time. The contribution lands on the MediaCopilot side as a live asset that the tenant's live-processing pipelines (transcription, subtitling, metadata enrichment) can run against.

When to use this

When the live broadcast must reach MediaCopilot in real time — for live transcription, live subtitling, live metadata enrichment or any MediaCopilot Live processing pipeline that operates on a running feed. For post-broadcast clip hand-off from a finished Recording, use the Editor → MediaCopilot export flow instead.

Prerequisites

  • A MediaCopilot account contracted through Cires21. MediaCopilot is a Cires21 product contracted separately; C21 Live Control does not provision it. The account, its tenant URL and the API key Live Control needs are issued by Cires21 as part of the service contract. See MediaCopilot integration for the account model.
  • The MediaCopilot integration configured in Live Control. A System Administrator one-time setup under Integrations → MediaCopilot: paste the API key and (when Cires21 issues a customer-specific tenant) override the URL. Save.
  • A per-Destination credential pair issued by MediaCopilot — an Access Key ID and a Secret Access Key. These are distinct from the tenant API key and are used by the Live Control encoder when it pushes the HLS feed to the MediaCopilot ingest. Obtain the pair from your MediaCopilot tenant.
  • A configured Live stream that can be bound to the new Destination. The bound Channel must produce a feed that complies with the MediaCopilot HLS constraints documented below.
  • Required role. System Administrator to register the Destination and the integration; Operator (or System Administrator) to bind it to a Live stream and run the broadcast.

This flow does not require the C21LiveEditor license — that license only gates the post-stream Editor / VOD path. Live contribution runs from any Live Control instance that has a valid product license.

Constraints to be aware of

The MediaCopilot Live path uses an HLS / TS Destination with provider-specific behaviour. The UI enforces and the encoder respects:

  • Type = HLS / TS and Provider = MediaCopilot are the only valid combination. The provider's notFor list in publishingProviders excludes every other Destination type (DASH, CMAF, RTMP, Enhanced RTMP, SRT, STREAM). The combo selector in the Destination editor hides the MediaCopilot option when any other type is selected.
  • Subtitles are not delivered. When the bound Live stream is configured with subtitle tracks, the broadcast publishing config surfaces "Subtitles not supported for MediaCopilot"; the subtitle selector is disabled for this Destination and any previously selected subtitle tracks are cleared on save.
  • At most one audio track is delivered. When the Live stream's source carries multiple audio tracks, the broadcast publishing config surfaces "Only one audio track is allowed for MediaCopilot" and accepts a single track selection. Picking a second track is rejected by the UI.
  • The Destination editor's standard Username / Password fields are relabelled to Access Key ID / Secret Access Key when Provider = MediaCopilot and Type = HLS / TS. The values are stored encrypted at rest and never returned in the clear (reads echo the masked sentinel).

Via UI

Configure the MediaCopilot integration (one-time)

Navigate: Integrations → MediaCopilot (System Administrator).

UI labelWhat to fill
API KeyThe MediaCopilot API key issued by Cires21.
URLThe MediaCopilot tenant URL. Leave blank to use the default tenant; override when Cires21 issues a customer-specific tenant.
API URLThe MediaCopilot API URL (when Cires21 issues a customer-specific value).

Click Save. A success toast confirms "MediaCopilot configuration saved". The status indicator next to the legend reads Configured.

Create the Destination

Navigate: Destinations → Add destination.

UI labelAPI fieldValue
NamenameA stable identifier reused across the UI, API and logs (e.g. MediaCopilot Live — Studio A).
TypetypeHLS / TS.
Providersettings_common.providerMediaCopilot.
Streamsettings_common.streamThe MediaCopilot stream name the tenant expects.
Access Key IDsettings_common.usernameThe Access Key ID from the MediaCopilot tenant.
Secret Access Keysettings_common.passwordThe matching secret. Stored encrypted; redacted on subsequent reads.

Under Settings → Extra → HLS, set the settings_extra.hls.* knobs (segments, duration and the rest of the HLS family) per your MediaCopilot ingest's expectations.

Save the form.

Bind the Destination to a Live stream

Open the target Live stream in the Live streams editor. Add the new Destination under Destinations (or add a Destination group that contains it).

In the broadcast publishing config for the MediaCopilot row:

  • If the bound Channel carries multiple audio tracks, the selector narrows to a single choice with the message "Only one audio track is allowed for MediaCopilot". Pick the track to deliver.
  • If the bound Channel carries subtitle tracks, the subtitle selector is disabled with the inline tooltip "Subtitles not supported for MediaCopilot".

Save the Live stream.

Start the Live stream

Start the broadcast from On air or the Live stream detail. The dialog reads "Do you want to start this Live stream?"; the primary action is Start Live stream. See Start and stop a Live stream.

The MediaCopilot Destination turns active on the per-Destination indicator of the on-air row. The live feed is contributed to MediaCopilot in real time; the asset appears on the MediaCopilot side under the tenant's live-assets view.

Via API

Every call uses the standard bearer header Authorization: Bearer <YOUR_API_TOKEN>.

Configure the integration

ActionMethod + pathNotes
Update the MediaCopilot integrationPUT /c21apiv2/system/mediacopilotPersists apiKey, url and apiUrl. The aliased path /c21apiv2/settings/integrations/mediacopilot resolves to the same handler. System Administrator only.
curl -X PUT "https://<your-host>/c21apiv2/system/mediacopilot" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "<MediaCopilot API key>",
    "url": "<optional tenant URL override>",
    "apiUrl": "<optional API URL override>"
  }'

apiKey reads echo a bullet sentinel (••••••••) — repeating the sentinel on write preserves the stored key.

Create the Destination

ActionMethod + pathoperationId
Create a DestinationPOST /c21apiv2/publishingsaddPublishing
curl -X POST "https://<your-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": "<tenant stream name>",
      "username": "<Access Key ID>",
      "password": "<Secret Access Key>"
    },
    "settings_extra": {
      "hls": { "segments": 6, "duration": 4 }
    }
  }'

settings_common.username and settings_common.password are the API field names; the UI relabels them Access Key ID / Secret Access Key only when provider = MediaCopilot and type = HLS / TS. The wire shape is unchanged.

Bind the Destination to a Live stream

ActionMethod + pathoperationId
Update a Live streamPUT /c21apiv2/livestreams/{livestreamId}updateLivestream

Add the Destination to the Live stream's bound Destinations (alongside any other Destinations the stream already publishes to). See the LiveStream schema for the payload shape.

Start and stop the broadcast

ActionMethod + pathoperationId
Start the Live streamPOST /c21apiv2/livestreams/{livestreamId}/startstartLivestream
Stop the Live streamPOST /c21apiv2/livestreams/{livestreamId}/stopstopLivestream

See API → Overview for the standard envelope and Pagination and errors for error handling.

Verify

  • The Destination turns active on the per-Destination indicator of the Live stream's row on On air.
  • On the MediaCopilot side, the live asset appears under the tenant's live-assets view within the time the MediaCopilot ingest takes to surface a newly-arriving HLS feed.
  • The audio track selected on the broadcast publishing config matches the audio track MediaCopilot exposes on the live asset.
  • No subtitle tracks are delivered to MediaCopilot regardless of what the bound Channel carries.
  • When the Live stream is stopped, the Live Control side simply stops pushing; the MediaCopilot live asset closes on its own contract.

Troubleshooting

  • Destination won't save with MediaCopilot selected. Verify Type is HLS / TS. The provider's notFor rule prevents saves on any other Destination type.
  • Subtitle or multi-audio errors at Live stream save. Open the broadcast publishing config for the MediaCopilot Destination, clear any subtitle selections and narrow audio to one track. The constraints are enforced at save time.
  • Authentication failures on the MediaCopilot side at start. Verify the Access Key ID and Secret Access Key on the Destination match what the MediaCopilot tenant issued. The values are stored encrypted; if a value is in doubt, re-paste from the tenant.
  • Tenant unreachable. Confirm the Live Control instance can reach the configured tenant URL. The Integrations → MediaCopilot page shows the status as Configured or Not configured next to the legend; a Configured status only means the API key is stored, not that the tenant is currently reachable.

FAQ

Copyright © 2026