This indicates the participant ID of the user who is currently speaking. If no participant is actively speaking, the value is null.
This represents the current state of the HLS stream.
This represents the URLs associated with the ongoing HLS stream.
playbackHlsUrl or livestreamUrl instead.Note
downstreamUrlis deprecated and should no longer be used.
This represents the unique ID of the meeting that the participant has joined.
This represents whether End-to-End Encryption (E2EE) is enabled for the meeting.
This represents the current state of the livestream.
This represents the local participant (you) who joined the meeting.
This represents the participant ID of the main participant in the meeting.
This represents a map of all remote participants currently in the meeting.
Participant instance.This map does not include the local participant.
This represents a map of all participants currently pinned in the meeting.
cam) and/or screen share (share) is pinned.It allows access to the pubSub functionality.
It allows access to the realtimeStore functionality.
This represents the current state of the meeting recording.
This represents the currently selected camera device used during the meeting,returned as a CameraDeviceInfo object containing details about the active camera.
This represents the currently selected microphone device used during the meeting,returned as a MicrophoneDeviceInfo object containing details about the active microphone.
This represents the current state of real-time transcription.
Either:
deviceId string of the microphone to switch to, orMediaStream to be used as the audio input source.Info
Important changes introduced in JavaScript SDK v0.1.4:
CONFERENCEhas been replaced withSEND_AND_RECVVIEWERhas been replaced withSIGNALLING_ONLY
Events associated with changeMode():
Either:
deviceId of the webcam to switch to, orMediaStream to be used as the video source.Events associated with disableScreenShare():
null as the presenter.Events associated with disableWebcam():
Events associated with enableScreenShare():
presenterId.OptionalcustomScreenSharingTrack: MediaStreamAn optional custom screen share track to be used instead of the default one.
To learn more checkout this reference
Events associated with enableWebcam():
OptionalcustomVideoTrack: MediaStreamAn optional custom video track to be used instead of the default one.
To learn more, checkout this reference
end() removes all participants, including the local participant, and permanently terminates the meeting.Events associated with end():
VideoSDK authentication token.
The file URL returned by uploadBase64File().
A Base64-encoded string of the requested file.
initMeeting(), calling join() is required to enter the meeting.Events associated with join():
Events associated with leave():
Events associated with muteMic():
Removes an event listener that was previously registered.
Event name to which you want to unsubscribe.
Callback function which was passed while subscribing to the event
To view the complete list of available events and their details, refer to MeetingEvent.
Registers an event listener.
Event name to which you want to subscribe.
Callback function which will be triggered when the event happens
To view the complete list of available events and their details, refer to MeetingEvent.
Optionalkind: "audio" | "video" | "share" | "shareAudio" | "all"Specifies which type of media stream should be paused. If not provided, all media streams (audio, video, and screen share) will be paused.
Configuration for media relay.
The ID of the destination meeting where media will be relayed.
Optionalkinds?: ("audio" | "video" | "share")[]Specifies which media tracks should be relayed.
Optionaltoken?: stringAuthentication token for the destination meeting.
A promise that resolves once the relay request is successfully processed.
Optionalkind: "audio" | "video" | "share" | "shareAudio" | "all"Specifies which type of media stream should be resumed.If not provided, all media streams (audio, video, and screen share) will be resumed.
The data to be sent.
string, Blob, ArrayBuffer, ArrayBufferViewOptionaloptions: { reliability?: "RELIABLE" | "UNRELIABLE" }Optionalreliability?: "RELIABLE" | "UNRELIABLE"Determines how the message is delivered:
Specifies the desired webcam quality.
Allowed values:
"low" – Low video quality"med" – Medium video quality"high" – High video qualityOptionalconfig: {Configuration used to control the HLS stream.
Optionallayout?: {OptionalgridSize?: numberSpecifies the maximum number of participants shown in the grid.
Optionalpriority?: "SPEAKER" | "PIN"Determines participant priority when composing the layout.
Optionaltype?: "GRID" | "SPOTLIGHT" | "SIDEBAR"Defines the layout used in the HLS stream.
Optionalmode?: "video-and-audio" | "audio"Determines whether the stream includes video and audio or audio only.
Optionalquality?: "low" | "med" | "high"Defines the output video quality of the HLS stream.
Optionalrecording?: { enabled: boolean }This can be used to enable or disable recording.
Optionaltheme?: "DARK" | "LIGHT" | "DEFAULT"Defines the visual theme of the HLS stream.
Optionaltranscription: { enabled: boolean; summary?: { enabled: boolean; prompt?: string } }Configuration for post-meeting transcription and summary generation.
Enables or disables transcription.
Optionalsummary?: { enabled: boolean; prompt?: string }Enables or disables summary generation.
Optionalprompt?: stringCustom prompt used for generating the summary.
let meeting;
// Initialize Meeting
meeting = VideoSDK.initMeeting({
// ...
});
const config = {
layout: {
type: "SPOTLIGHT",
priority: "PIN",
gridSize: 9,
},
theme: "DEFAULT",
recording : {
enabled: true,
};
};
const transcription = {
enabled: true,
summary: {
enabled: true,
},
};
meeting?.startHls(config, transcription);
An array of RTMP output destinations where the livestream will be broadcast.
Optionalconfig: {Configuration options for the RTMP livestream.
Optionallayout?: {OptionalgridSize?: numberSpecifies the maximum number of participants displayed in the grid.
Optionalpriority?: "SPEAKER" | "PIN"Determines participant priority when composing the livestream layout.
Optionaltype?: "GRID" | "SPOTLIGHT" | "SIDEBAR"Defines the layout used for the livestream.
Optionalrecording?: { enabled: boolean }This can be used to enable or disable recording.
Optionaltheme?: "DARK" | "LIGHT" | "DEFAULT"Defines the color theme of the livestream.
let meeting;
// Initialize Meeting
meeting = VideoSDK.initMeeting({
// ...
});
const outputs = [
{
url: "rtmp://a.rtmp.youtube.com/live2",
streamKey: "<STREAM_KEY>",
},
{
url: "rtmps://",
streamKey: "<STREAM_KEY>",
},
];
const config = {
layout: {
type: "SPOTLIGHT",
priority: "PIN",
gridSize: 9,
},
theme: "DEFAULT",
recording: {
enabled: true,
},
};
meeting?.startLivestream(outputs, config);
This method can be used to start recording the meeting.
All participants, including the local participant, will receive the RECORDING_STARTING event state in the recording-state-changed event.
Optionalconfig: {Recording configuration options.
Optionallayout?: {Defines how participants are arranged in the recording.
OptionalgridSize?: numberMaximum number of participants displayed simultaneously.
Optionalpriority?: "SPEAKER" | "PIN"Determines participant prioritization.
Optionaltype?: "GRID" | "SPOTLIGHT" | "SIDEBAR"Layout type for the recording.
Optionalmode?: "video-and-audio" | "audio"Defines whether the recording includes video or audio only.
Optionalquality?: "low" | "med" | "high"Controls the output quality of the recording.
Optionaltheme?: "DARK" | "LIGHT" | "DEFAULT"Visual theme applied to the recording.
OptionalwebhookUrl: stringWebhook URL triggered when the recording state changes.
OptionalawsDirPath: stringPath to the directory in your S3 bucket where recordings are stored.
Optionaltranscription: { enabled: boolean; summary?: { enabled: boolean; prompt?: string } }Configuration for post-recording transcription and summary generation.
Enables or disables transcription.
Optionalsummary?: { enabled: boolean; prompt?: string }Enables or disables summary generation.
Optionalprompt?: stringCustom prompt used for generating transcription summaries.
let meeting;
// Initialize Meeting
meeting = VideoSDK.initMeeting({
// ...
});
const webhookUrl = "https://webhook.your-api-server.com";
const awsDirPath = "/meeting-recordings/";
const config = {
layout: {
type: "SPOTLIGHT",
priority: "PIN",
gridSize: 9,
},
theme: "DEFAULT",
};
const transcription = {
enabled: true,
summary: {
enabled: true,
},
};
meeting?.startRecording(config, webhookUrl, awsDirPath, transcription);
This method can be used to start real-time transcription for the meeting.
All participants, including the local participant, will receive the TRANSCRIPTION_STARTING state in the transcription-state-changed event.
Optionaloptions: {OptionalmodelConfig?: objectOptional model configuration used during transcription.
Optionalsummary?: { enabled: boolean; prompt?: string }Configuration for real-time transcription summary generation.
Enables or disables summary generation.
Optionalprompt?: stringCustom instructions used to guide summary generation.
OptionalwebhookUrl?: stringA webhook URL that will be called whenever the transcription state changes.
let meeting;
// Initialize Meeting
meeting = VideoSDK.initMeeting({
// ...
});
const config = {
webhookUrl: "https://webhook.your-api-server.com",
summary: {
enabled: true,
prompt: "Write summary in sections like Title, Agenda, Speakers, Action Items, and Notes",
},
};
meeting?.startTranscription(config);
The ID of the destination meeting where media relay should be stopped.
This method can be used to stop the ongoing meeting recording.
All participants, including the local participant, will receive the RECORDING_STOPPING event state in the recording-state-changed event.
This method can be used to stop the ongoing real-time transcription.
All participants, including the local participant, will receive the TRANSCRIPTION_STOPPING state in the transcription-state-changed event.
Configuration for switching meetings.
The ID of the meeting to switch to.
Optionaltoken?: stringAuthentication token for the destination meeting.
Events associated with unmuteMic():
OptionalcustomAudioTrack: MediaStreamAn optional custom audio track to be used instead of the default one.
To learn more, checkout this reference
fileUrl, which can later be used to retrieve the uploaded file.Base64-encoded representation of the file.
Name of the file including its extension.
VideoSDK authentication token. Learn more about tokens here.
This indicates the participant ID of the user who is currently sharing their screen in the meeting. If no one is presenting, the value is
null.