Build a live host dashboard
A live session one person runs: they control the stage, let people speak, add co-hosts, moderate chat and record. When the audience outgrows a conversation, the same room streams to thousands over HLS.

- Up to 500,000
- people in one room, depending on room type
- 3 settings
- decide who may use mic, camera and screen
- 1 flag
- adds an HLS stream for a passive audience
How it fits together
- Your serverCreates the sessionSets the room type and what guests may do.
- HostGoes liveJoins first and controls the stage from your app.
- MediaSFURuns the roomMedia, requests, chat and recording for everyone in it.
- AudienceWatches or joins inIn the room, or through the HLS stream at any scale.
What MediaSFU handles
| You need | MediaSFU gives you | Read |
|---|---|---|
| A host who controls the room | Host and co-host roles with participant, request and chat panels | Large rooms and moderation |
| Guests asking before they speak | Mic, camera and screen-share set to approval, so guests request and the host decides | Rooms API |
| Panelists on stage, everyone else watching | Webinar rooms with panelists and permissions | Large rooms and moderation |
| A recording of the show | Cloud recording of the room, and of your custom layout | Record your custom interface |
| An audience beyond the room | HLS output for passive viewers | HLS broadcast |
| A studio encoder as a source | OBS publishing into the room over WHIP | Stream from OBS |
Set it up
-
Create a webinar from your server. Guests must ask before using their mic, camera or screen, and the host may add co-hosts:
curl -X POST https://mediasfu.com/v1/rooms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MEDIASFU_API_USERNAME:$MEDIASFU_API_KEY" \
-d '{"action":"create","userName":"host","duration":120,"capacity":500,"eventType":"webinar","meetingRoomParams":{"audioSetting":"approval","videoSetting":"approval","screenshareSetting":"approval","addCoHost":true}}' -
To stream to a larger audience as well, add HLS to the same request:
"recordingParams":{"recordingHLSSupport":true}. The HLS guide covers playback. -
Send the host and guests to the room from your app (below). The host joins with the room's host details; everyone else joins as a participant. Keep the API key on your server (Secure backend).
To apply these settings to every new room instead, set them once as event settings.
Build it in your SDK
- ReactJSComplete tutorial
- AngularComplete tutorial
- VueComplete tutorial
- React NativeComplete tutorial
- ExpoComplete tutorial
- FlutterComplete tutorial
- AndroidComplete tutorial
- Kotlin MultiplatformStart from the SDK starter
- Swift / AppleStart from the SDK starter
- UnityComplete tutorial
- Shared coreComplete tutorial
Check it works
- Join as the host on one device and as a guest on another.
- As the guest, turn on the microphone: a request reaches the host instead of going live. Approve it and confirm the audio arrives.
- Make the guest a co-host and confirm they now see the host panels.
- End the session as the host: every participant sees it finish.
Go further
- Hybrid stage and audience: a small live stage with a large HLS audience.
- Live guest queue: bring audience members on stage one at a time.
- Broadcast control room: a producer view across several sources.