Skip to main content


HLS streaming provides better buffering than WebRTC, at the cost having a slight delay in your livestreams.

Start and stop HLS broadcast

There are two ways to start/stop HLS broadcast:


// to end broadcasting

Or, if you're using backstage mode, you can do that when going live:


// optionally start HLS broadcast and/or recording
call.goLive({ start_hls: true, start_recording: true });

Once the live ended, the HLS broadcast will be stopped as well.

User permissions

To perform these operations, users need the following capabilities:

  • start-broadcast-call
  • stop-broadcast-call

Broadcast state

You can check if the call is being broadcasted like this:

const resp = await call.getOrCreate();
const isBroadcasting =;


These events are sent to users connected to the call and your webhook/SQS:

  • call.broadcasting_started
  • call.broadcasting_stopped
  • call.broadcasting_failed

Consuming HLS broadcast

Users don't need to join the call to consume the HLS broadcast, but they need to have the URL of the broadcast:

const resp = await call.getOrCreate();
const URL =;

Did you find this page helpful?