Skip to main content

Composite recording

A server-side composed mix of selected participants, with optional watermarks. The mix is defined by the participants you select. To stop the recording, pass the value returned by start to stop.

const rec = await client.recordings.composite.start(roomId, {
participants: [{ participantId: "participant-alice", kind: ["audio", "video"] }],
watermarks: [{ type: "custom", imageUrl: "https://example.com/logo.png", text: "CONFIDENTIAL" }],
});

await client.recordings.composite.stop(rec);

Manage recordings

List, fetch, and delete composite recordings:

await client.recordings.composite.list({ roomId });
await client.recordings.composite.get(recordingId);
await client.recordings.composite.delete(recordingId);

The recording object

recordings.composite.list and get return this object.

FieldTypeDescription
idstringComposite recording id.
roomIdstringRoom this recording belongs to.
sessionIdstringSession this recording belongs to.
participantsobject[]Participants included in the composite.
fileFormatstringOutput file format.
fileobjectOutput file (contains fileUrl).
startstringStart time (ISO-8601).
endstringEnd time, null while still recording.

Got a Question? Ask us on discord