Skip to main content
A live stream is a real-time broadcast you publish into your ShortKit feed. Each stream has its own broadcast endpoint that an external encoder pushes video to, and a playback ID that viewers use to watch. While a stream is active, it appears in the feed as a content item with contentType: "live_stream" and a live viewer count. When the stream ends, its recording becomes available as on-demand video — you can either keep the full recording or generate shorter clips from it.

The live stream object


Attributes

string
Unique identifier (UUID) for the live stream.
string
Identifier viewers use to play the stream. The SDK plays a live stream the same way it plays on-demand video — pass the playbackId through your custom feed input, or let the feed surface it automatically.
string
Current lifecycle state. See Lifecycle below. One of idle, active, or ended.
string | null
Display title shown in the feed. Max 200 characters.
string
Ingest and delivery protocol. One of hls or webrtc. Set at creation time and cannot be changed. See Choosing a protocol.
string | null
HLS streams only. Glass-to-glass latency target. One of low, reduced, or standard. See Latency mode below. null for WebRTC streams.
integer | null
HLS streams only. Number of seconds the stream will hold the slot if the broadcaster disconnects. After this window expires without a reconnect, the stream automatically transitions to ended. Range 0–1800. Defaults to 60. null for WebRTC streams.
string | null
Ready-to-use RTMPS broadcast URL with credentials embedded. Only returned in the Create Live Stream response. Point your encoder at this URL to start pushing video — no additional configuration needed.Sensitive — treat like an API key. Anyone with this URL can broadcast under your stream. Forward it only to the broadcaster who will publish the stream, never log it, and never expose it to viewers or commit it to source control.
string | null
Broadcaster authentication key, already embedded in rtmpUrl. Only returned in the Create Live Stream response. Provided separately for encoders that require the key as a distinct field. See the warning on rtmpUrl — same handling rules apply.
string | null
ISO 8601 timestamp of when the broadcaster first connected. null while status is idle.
string | null
ISO 8601 timestamp of when the stream ended. null while the stream is idle or active.
string
ISO 8601 creation timestamp.

Lifecycle

A live stream moves through three states: A stream can transition idle → active only once. Once it has gone active and then ended, it cannot be restarted — create a new live stream for the next broadcast.

Latency mode

latencyMode applies to HLS streams only and controls the trade-off between end-to-end delay and playback stability. For sub-second delivery, use protocol: "webrtc" instead — see Choosing a protocol. The default is low. Higher latency modes give the player more time to buffer, which results in smoother playback over poor connections.

Live streams in the feed

When the SDK fetches the feed, active live streams appear as content items with two extra fields:
  • isLive: true — flags the item as a live broadcast
  • currentViewers: <number> — the live concurrent viewer count
Once the stream ends, the recording remains in the feed as a regular video. The isLive flag flips to false and currentViewers returns 0. See The Content Object for the full content shape.

Deletion

Deleting a live stream via Delete Live Stream ends the broadcast (if it’s still active) and archives the underlying content item. Recordings and any clips already created from the stream are preserved.