Manage live streams and VOD: go live, publish assets, mint API keys, and watch analytics.
The Streams Console is the ready-made web app that runs live video and
video-on-demand. You do not have to write code first. From the console, you
can:
Create live inputs.
Give encoders an ingest endpoint.
Record and manage VOD assets.
Mint the API keys and signing keys that your apps use.
Configure webhooks.
Watch delivery quality across the edge relay network in real time.
The console is for operators and developers who own an org’s streaming. Open
it at https://streams.clutchcall.dev and pick the Streams product.
Streams is a plan-gated product. If your org’s plan does not include it,
the create buttons (New live stream, Create API key, and others) show as
disabled with an “upgrade” tooltip. Ask an org admin to upgrade, or see
Usage & billing.
Your streaming home: concurrent viewers, glass-to-glass latency, 24h egress,
a “Go live in 3 calls” quickstart, your ingest/playback endpoints, live-now
list, and recent webhook events.
Live streams
The table of persistent live inputs: status, viewers, egress, latency. It
has search, filters, bulk actions, and a New live stream button.
Assets
Your VOD library: recordings auto-captured from live inputs plus direct
uploads, each with a playback id, quality, duration, and 24h play count.
Relay network
The edge map: active PoPs, per-region cache-hit ratio, origin→edge fan-out,
and viewers per relay.
Analytics
Unique viewers, watch time, latency percentiles, rebuffer ratio,
first-frame, the viewers-vs-latency twin chart, and a by-region breakdown.
You can export the data to CSV.
API keys
Bearer API keys, signing keys for signed playback and webhook signatures,
and a recent event-delivery table.
Webhooks
Register endpoints for signed event POSTs. Pause or resume them. View the
signing key that signs every delivery.
Request logs
The full webhook event-delivery log: response codes, attempts, timing, and
one-click resend.
Usage & billing
Your plan and metered pools (delivery minutes, egress, storage) for the
current cycle, with a daily delivery chart.
A live input is a persistent endpoint that you point an encoder at. Create
one. Save the stream key that the console shows you once. Then publish.
1
Open the create dialog
On Overview or Live streams, click New live stream in the top-right.
2
Name it and choose a relay region
Enter a Name. The name shows on the live-streams table and on any
recordings. Pick a Relay region. Leave it on auto (anycast) to
route each viewer to the nearest healthy PoP, or pin a specific region
from the dropdown.
3
Set the ingest and recording options
Low-latency mode (on by default) — WebTransport ingest, MoQT delivery
for sub-second glass-to-glass.
Record automatically to a VOD asset (on by default) — the system
captures every broadcast as an asset that you can replay later.
4
Create and save the stream key
Click Create. The console shows the cleartext stream key exactly
once in a dialog. Copy it and store it securely before you close the
dialog. You cannot view it again later.
The console shows the stream key only at creation (and after a reset).
If you lose the key, you must reset it. A reset invalidates the old key.
5
Point your encoder at the ingest endpoint
Open the input’s detail page (click its row). The Ingest panel gives
you the endpoint to set in your encoder, together with your stream key.
WebTransport encoders publish over MoQ. Encoders without WebTransport
fall back to RTMP/SRT automatically with the same key.
When the relay sees your first publish, the input changes to
Active/Live. Its viewers, bitrate, dropped-frame %, and glass-to-glass
latency then populate on the detail page.
The stream detail page (click any row in Live streams) is where you
operate a single input. It has tabs across the top: Setup, Analytics,
Embed, Recordings, and Logs.
1
Watch the live preview and QoE
The Live preview panel shows a LIVE/OFFLINE indicator and live
mini-stats: concurrent Viewers, Glass-to-glass p50, delivered
Bitrate, and Dropped %. The stats refresh every few seconds.
2
Copy playback details for viewers
In the Playback panel, copy the Playback id and the low-latency
MoQ subscribe URL. Give them to viewers or to your player.
3
Generate a signed playback URL
Click Generate signed playback URL to mint a short-lived (1-hour)
token bound to your org’s active playback signing key. The relay checks
this token before it permits playback. The URL itself is the auth.
Signing requires an active playback signing key. If you did not
create one, create it first on the API keys screen.
4
Grab the embed snippet
On the Embed tab / snippet panel, toggle options (Low-latency,
Autoplay (muted), Signed URL only, Show viewer count) and
click Copy embed to get an <iframe> that you can paste into any
page.
5
Reset the stream key or delete the input
Use Reset stream key (top-right) to rotate the key. The console shows
the new cleartext once. Any encoder on the old key stops immediately. Use
Delete to soft-delete the input. The system keeps existing recording
assets.
You can also run bulk actions from the Live streams table. Select rows.
Then use the bulk bar to Start recording, Stop recording, or
Reset key across many inputs at once.
The Assets screen is your on-demand library. Assets come from two places:
recordings auto-captured from live inputs, and files that you upload
directly.
1
Upload a video
Click Upload (top-right) and pick a video file (.mp4, .mov,
.mkv, .webm). Uploads are resumable. Progress shows on the button and
as a live tile in the grid. An upload that started on another device also
appears here.
2
Wait for processing
New assets move through Uploading → Processing → Ready. The tile
shows a progress bar, then a “Transcoding…” state, then a playable
thumbnail with its quality (for example, 1080p) and duration.
3
Find and filter assets
Use the search box (name / id / playback id) and the Status and
Quality filter chips to narrow the grid. The KPI strip shows totals:
Assets, Ready, Processing, Storage, and Plays · 24h.
4
Play or delete an asset
Click a Ready tile to open its playback. Use the small delete (×)
button on a tile to remove the asset and its stored video. The console
asks you to confirm.
Recordings from a live input also show under that input’s Recordings
tab on its detail page, with a live count badge.
The API keys screen holds the credentials that your server-side code
uses to call the Streams API.
1
Create an API key
Click Create API key (or New key). In the dialog, set a Name
(for example, “Production server”). Choose an Environment (live
or test). Select the Scopes you want: read, ingest,
playback, write.
2
Save the token once
Click Create. The console shows the bearer token once. Copy it
and set it as Authorization: Bearer <token> in your app. After that,
the table shows only a masked preview.
You cannot show a full token later. To get a fresh cleartext value, you
must revoke the old key and create a new one.
3
Rotate or revoke
Use Revoke on a key’s row to stop its authentication immediately.
Deployed clients on that key will break until you swap in a new key. To
rotate a key:
In the Signing keys panel, click Generate signing key. Choose
what it is Used for: Signed playback URLs or Webhook
signature. All keys are Ed25519. Click Generate. The console then
lists the public key.
2
Retire a key safely
Click Retire on an active key. The key stays valid for 30 more days,
so existing signed URLs and webhook signatures continue to verify. Then
the system removes the key. Mint a replacement before that window closes.
The Webhooks screen registers HTTPS endpoints that receive signed event
POSTs with automatic retry and backoff.
1
Add an endpoint
Click Add endpoint. Enter the URL and the Event types to
subscribe to. Event types are comma-separated, and * matches everything
(for example, video.live_stream.*).
2
Store the signing secret
On create, the console shows the HMAC signing secret once. Save it.
Set it on your endpoint to check the signature header on every delivery.
The console shows the signing secret only once, at creation. Store it
before you close the dialog.
3
Pause, resume, or delete
Each endpoint row shows a health state (Healthy, Paused, or
Failing (Nx)). Use Pause/Resume to stop or restart
deliveries. Use Delete to remove an endpoint. Its delivery history
stays in the logs.
The console mints a webhook signing key automatically with your first
endpoint. You can see it in the Signing keys panel on this screen.
Overview shows the top-line numbers, which refresh on a timer:
Concurrent viewers, Live streams, P50 glass-to-glass (target
250 ms), Egress · 24h, and edge Cache hit. The Live now panel
lists active inputs with per-stream viewers and latency.
2
Dig into Analytics
Open Analytics for a 24-hour view: Unique viewers, Watch
time, latency percentiles (P50/P90/P95/P99), Rebuffer ratio, and
First frame. The twin chart overlays concurrent viewers against p50
latency. The By edge region table divides the data per PoP.
3
Export a report
Click Export CSV on Analytics to download the loaded 24h
viewers-vs-latency series (one row per 10-minute bucket).
4
Check the Relay network
Open Relay network to see active PoPs on the edge map, per-region
cache-hit ratio, the origin → edge fan-out (one upstream, N
relays), and viewers per relay. Click Refresh to get the latest PoP
health.
A telemetry health banner appears at the top of Overview, Analytics, and
Relay network if the metrics rollup is degraded. The banner tells you when
numbers can be stale.
On Usage & billing, the Current plan card shows your tier and
status. It also shows usage meters for Delivery minutes, Egress,
Encoding minutes (passthrough — no transcode), and Storage (VOD)
against your plan pools.
2
See the cycle estimate and daily chart
The Estimated this cycle card summarizes metered usage. The
Delivery minutes · this cycle chart plots per-day delivery over the
last 30 days.
3
Upgrade when you hit a cap
Click Upgrade plan to review pricing. Invoices appear in the
Invoices table at the end of each billing cycle.