Start live stream for a room

Use this to start a live stream for a room. This would return a playback URL (in m3u8 format) that can be shared with HLS player clients for playback.

The live stream will be in starting state to begin with, and turn into running shortly.

POSThttps://api.100ms.live/v2/live-streams/room/<room_id>/start
curl --location --request POST 'https://api.100ms.live/v2/live-streams/room/<room_id>/start' \ --header 'Authorization: Bearer <management_token>' \ --header 'Content-Type: application/json' \ --data-raw '{ "meeting_url" : "<meeting_url>", "recording": { "hls_vod": true, "single_file_per_layer": true }, "transcription": { "enabled": true, "modes": ["recorded", "live"], "output_modes": ["txt", "srt", "json"], "custom_vocabulary": ["100ms", "WebSDK", "Flutter", "Sundar", "Pichai", "DALL-E"], "summary": { "enabled": true, "context": "this is a general call", "sections": [ { "title": "Agenda", "format": "bullets" }, { "title": "Key Points", "format": "bullets" }, { "title": "Action Items", "format": "bullets" }, { "title": "Short Summary", "format": "paragraph" } ], "temperature": 0.5 } } }'
RESPONSE
Status: 200 OK
{ "id": "<stream_id>", "room_id": "<room_id>", "session_id": "<session_id>", "status": "starting", "meeting_url": "<meeting_url>", "playback": { "url": "<master-manifest-url>" }, "recording": { "hls_vod": true, "single_file_per_layer": true }, "destination": "<destination_name>", "created_at": "2023-03-22T04:24:10.155978231Z", "started_at": null, "updated_at": "2023-03-22T04:24:10.155978231Z", "started_by": "", "stopped_at": null, "stopped_by": "", "recording_assets": null }

Parameters

NameTypeDescriptionRequired
meeting_urlstringSingle click meeting URL for the streamNo[1]
recordingobjectFlags to enable recordingNo
destinationstringName of destination from template to pick up configurationNo[2]
transcriptionobjectTranscription object to configure recorded/live transcriptionNo

[1] meeting_url is required when

  • Live streaming is not enabled on the dashboard
  • The template of this room does not have a subdomain (templates created through the REST API don't have subdomains)

[2] (Advanced usage only) destination is required when

  • There are multiple destinations of this type on the template
meeting_url

This is a URL which lands into the room directly. You can use 100ms room links that look like:

https://<domain>.app.100ms.live/preview/<room_id>/<role>?skip_preview=true

Other supported query parameters:

  • skip_preview=true: skips the preview page and directly joins the meeting with header and controls disabled
  • skip_preview_headful=true: skips the preview page and directly joins the meeting with header and controls enabled
  • auth_token=token1234: Use this to pass an auth token to authenticate the room join action
  • ui_mode=activespeaker: Render active speaker mode by default
  • name=johndoe: Use this to add a name for the peer
recording
NameTypeDescriptionRequired
hls_vodboolGenerate a room-vod asset for on-demand playback use-caseNo
single_file_per_layerboolGenerate room-composite assets, one for each layerNo

transcription

NameTypeDescriptionRequired
enabledbooleanSet this to true to enable transcription.No
modesarrayArray of modes for transcription. Valid values: [ recorded, live ]
(recorded: Transcribe recording post call completion, live: Closed caption for live stream viewers)
No
output_modesarrayArray of transcript output modes, valid for recorded mode. Valid values: [ txt, srt, json ] (txt: Plain text, srt: SubRip text, json: Granular timestamped words and sentences).No
custom_vocabularyarrayArray of words that might be spoken during the call. This can consist of non-dictionary words like names, slang, abbreviations and domain specific words.No
summaryobjectObject of type summary, This can be used to enable and configure summary, valid for recorded mode.No

transcription - summary

NameTypeDescriptionRequired
enabledbooleanSet this to true to enable summary.No
contextstringProvide context of the meetings to help AI get a holistic understanding about the call to generate a better summary. (limit: 300 characters)No
temperaturefloatTemperature determines creativity. Higher values makes AI be more creative, lower values makes it more deterministic and predictable. (default: 0.5, accepted range : 0.1 - 1.0)No
sectionsarraySections has list of objects. This refers to sections in summary like Agenda, Short Summary, Questions raised by participants. (max count: 6)No

transcription - summary - section

NameTypeDescriptionRequired
titlestringTitle of the section Agenda, Short Summary, Follow Up Action Items, Short Summary. (limit: 100 characters)Yes
formatstringFormat of the section. Valid values: [bullets, paragraph]Yes

Have a suggestion? Recommend changes ->

Run in postman

Was this helpful?

1234