Apply a logo overlay to a running Live stream
Available in: UI · API
Set or clear the corner-bug / logo on a running Live stream without stopping the broadcast. The runtime operation is runtimeApplyLogo; it persists the change to the broadcast and the encoder picks it up on the next keyframe.
When to use this
When a logo must be added, swapped or removed while the broadcast is on air — for example a sponsor bug for a segment of a programme, or a clearance event that requires the bug to come off temporarily.
Prerequisites
- A Live stream that is currently running (
LiveStream.status = 2). - A user with the Operator or System Administrator role.
- An image Asset in the
logosbucket — list the available logos withlistAssets({ fileType: "logos" })or open Assets in the UI.
Via UI
Navigation: On air → <row> → Logo tab in the runtime panel.
Open the runtime panel
Click the row of the running Live stream on On air to expand its runtime panel.
Switch to the Logo tab
Click the Logo icon (logo.svg) in the runtime cluster. The Logo panel renders inline.
Pick a logo and position
- Logo — pick an Asset from the logos bucket.
- Position — pick one of the nine grid positions: Center, Left, Right, Top, Bottom, Top-Left, Top-Right, Bottom-Left, Bottom-Right.
Submit. The logo lands on the output on the next keyframe.
Clear the logo
Submit the same panel with the Logo field cleared (empty filename). The position is preserved so a later call can re-apply a logo without re-specifying it.
Via API
| Action | Method + path | operationId |
|---|---|---|
| Apply or clear the logo | POST /c21apiv2/livestreams/{id}/runtimeOptions/logo | runtimeApplyLogo |
curl -X POST "https://<your-host>/c21apiv2/livestreams/<livestreamId>/runtimeOptions/logo" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"logo": {
"filename": "station.png",
"position": "Top-Right"
}
}'
Body shape:
| Field | Notes |
|---|---|
logo.filename | Asset filename from the logos bucket. An empty string clears the logo while preserving the position. |
logo.position | One of the canonical LogoPosition enum values listed above. The legacy bitmask integer is still accepted on input for backwards compatibility. |
The response is the standard envelope with data: null — runtime operations do not echo the new state. To confirm, call GET /c21apiv2/livestreams/{livestreamId} and inspect the Logo property.
Verify
- The output of the broadcast shows the new logo on the next keyframe.
GET /c21apiv2/livestreams/{livestreamId}returns the updated Logo property with the new filename and position.
FAQ
LiveStream.status = 0, the call still persists the new logo state but takes effect only at the next start.fileType is logos. List them with listAssets({ fileType: "logos" }). See Logos for the catalogue.Cut a clip in the Editor and send it to MediaCopilot
Open a Recording in the Recordings Editor, cut a clip, and deliver it to MediaCopilot for transcription, subtitling and clip generation.
Black out or replace the program on a running Live stream
Cut to a black frame, replace the output with a media file, or return to the live input — without stopping the broadcast.