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
Name | Type | Description | Required |
---|---|---|---|
meeting_url | string | Single click meeting URL for the stream | No[1] |
recording | object | Flags to enable recording | No |
destination | string | Name of destination from template to pick up configuration | No[2] |
transcription | object | Transcription object to configure recorded/live transcription | No |
[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 disabledskip_preview_headful=true
: skips the preview page and directly joins the meeting with header and controls enabledauth_token=token1234
: Use this to pass an auth token to authenticate the room join actionui_mode=activespeaker
: Render active speaker mode by defaultname=johndoe
: Use this to add a name for the peer
recording
Name | Type | Description | Required |
---|---|---|---|
hls_vod | bool | Generate a room-vod asset for on-demand playback use-case | No |
single_file_per_layer | bool | Generate room-composite assets, one for each layer | No |
transcription
Name | Type | Description | Required |
---|---|---|---|
enabled | boolean | Set this to true to enable transcription. | No |
modes | array | Array of modes for transcription. Valid values: [ recorded , live ] (recorded: Transcribe recording post call completion, live: Closed caption for live stream viewers) | No |
output_modes | array | Array 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_vocabulary | array | Array 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 |
summary | object | Object of type summary , This can be used to enable and configure summary, valid for recorded mode. | No |
transcription - summary
Name | Type | Description | Required |
---|---|---|---|
enabled | boolean | Set this to true to enable summary. | No |
context | string | Provide context of the meetings to help AI get a holistic understanding about the call to generate a better summary. (limit: 300 characters) | No |
temperature | float | Temperature 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 |
sections | array | Sections 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
Name | Type | Description | Required |
---|---|---|---|
title | string | Title of the section Agenda , Short Summary , Follow Up Action Items , Short Summary . (limit: 100 characters) | Yes |
format | string | Format of the section. Valid values: [bullets , paragraph ] | Yes |
Have a suggestion? Recommend changes ->