Getting started
In five minutes you'll have a live stream you can watch in any HLS-capable player.
1. Create a project
- Sign in and either create an organization (first time) or pick one.
- Under your org, create a project — streams and VODs are always project-scoped, and your URL slugs derive from the project name.
2. Create a stream
From Dashboard → Streams → + New stream:
- Name — anything readable (
Weekly webinar,Game 4 highlights). - Renditions — pick from
1080p,720p,480p,360p. More rungs = more CPU, more bandwidth, better device coverage. Default720p + 480pis a good starting point. - Protocols — leave LLHLS on (sub-3-second latency in all modern browsers). Add HLS if you need legacy Safari support, WebRTC for sub-second.
- Recording (VOD) — turn on if you want the stream saved to S3 automatically. Finalized recording is playable at
<edge>/vod/<streamKey>/index.m3u8. - DVR — lets viewers scrub backwards into the live window. Maximum window is bounded by your plan.
Click Create. You'll land on the stream detail page with an Ingest server URL, a stream key, and a username + password.
3. Push with OBS
In OBS → Settings → Stream:
- Service:
Custom - Server: paste the Ingest URL from the stream detail page. It looks like
rtmp://<user>:<pass>@ingest-in-mum-1.hakari.cloud:11935/app— credentials are already embedded. - Stream Key: your stream key
- Leave "Use authentication" unchecked. It triggers RTMP challenge-response auth that
our servers don't validate; the
user:pass@in the URL is all you need.
Hit Start Streaming. Within a second the status on the stream detail page flips to Live.
4. Play
On the stream detail page, copy the LLHLS URL. Paste into:
- hls.js demo — quickest browser test
- OvenPlayer — built for LLHLS, shows buffer stats
- VLC: File → Open Network Stream with the HLS URL (LLHLS is also served as HLS — older players ignore the low-latency tags)
Or just use the embedded player on the stream detail page.
5. Stop + play the recording
Stop OBS. The stream status drops to Disabled after a few seconds (the container auto-shuts on inactivity). If recording was on, the VOD playback URL on the detail page becomes live once segments finish uploading — usually under 10 seconds after stop.
The recording is a normal HLS master playlist and works in every HLS-capable player. You can also pull the recording out of your S3 bucket directly at vod/<streamKey>/index.m3u8.
Next
- Live streams guide — protocol trade-offs, DVR, push authentication, rotation.
- Signed playback — gate URLs with short-lived signatures.
- Webhooks — notify your backend when streams go live or VODs finish processing.
- API reference — skip the dashboard and do everything via HTTP.