Start recording for room
Use this to start a recording job for a room.
The recoding will be in starting
state to begin with, and turn into running
shortly.
Transcription can be configured while starting the recording. The recording will be auto transcribed once it is completed and the transcript
/summary
will be made available in the assets.
It takes around 20 percent of recording duration for transcription assets to get completed
. Those will be made available in the processing
state immediately after the recording is completed.
If webhooks are configured, You would be notified about the transcription progress with transcription.started.success
and transcription.success
/ transcription.failed
events.
curl --location --request POST 'https://api.100ms.live/v2/recordings/room/<room_id>/start' \ --header 'Authorization: Bearer <management_token>' \ --header 'Content-Type: application/json' \ --data-raw '{ "meeting_url" : "<meeting_url>", "resolution" : { "width": 1280, "height": 720 }, "transcription": { "enabled": true, "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 } } }'
{ "id": "<recording-id>", "room_id": "<room-id>", "session_id": "<session-id>", "status": "starting", "created_at": "2023-03-30T05:14:04.007990308Z", "started_at": null, "updated_at": "2023-03-30T05:14:04.007990308Z", "stopped_at": null, "meeting_url": "<meeting-url>", "destination": "<destination_name>", "started_by": "", "stopped_by": "", "asset_types": [ "room-composite", "chat", "transcript", "summary" ], "recording_assets": null }
Parameters
Name | Type | Description | Required |
---|---|---|---|
meeting_url | string | Single click meeting URL for the stream | No[1] |
resolution | object | Video resolution for stream | No |
destination | string | Name of destination from template to pick up configuration | No[2] |
audio_only | boolean | Pass true to get an audio-only recording | No |
transcription | object | Transcribe recording post call completion | No |
[1] meeting_url
is required when
- Composite recordings is not enabled on the dashboard (see how)
- 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
transcription
Name | Type | Description | Required |
---|---|---|---|
enabled | boolean | Set this to true to enable transcription. | No |
output_modes | array | Array of output modes for transcript. 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. | 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). It can take custom section names and accordingly the output will vary. | Yes |
format | string | Format of the section. Valid values: [bullets , paragraph ] | Yes |