Record a meeting in React
useRecorder finishes uploading what was left. Pass systemAudio: true to also record a tab’s or the computer’s audio as its own track, and liveTranscript: true for a read-along preview while recording.
useRecordings, useRecording and useTranscript list recordings, follow processing, and read and edit a transcript: name speakers, move a segment to another speaker, correct text, re-run with another model, or switch the shown version. useRecordingPeople reads the people directory speakers are named from.
On phones and other hosts
In React Native, pass the phone’s capture to the same hooks:@opengeni/sdk/recordings has the headless pieces: OpenGeniRecordingsClient for every route, RecordingUploader for local-first upload with retries, and createBrowserRecorder for capture.
Read the transcript
nextAfter until the last one; each segment.speakerLabel points at one of page.speakers, which carries the name people gave that speaker. A recording is private to the person who recorded it unless they share it with the workspace.
React from your backend
Recording events go out through your workspace webhooks:recording.started, recording.finished, recording.transcript.ready, recording.transcript.failed, recording.transcript.current_changed, recording.speakers.updated and recording.deleted. They carry ids, states and your externalRef, never titles, audio or transcript text, so your backend reads the recording through the API with its own authority.
Dictation
The composer’s microphone records each dictation as a recording withpurpose: "dictation": one microphone track, always private, transcribed with the workspace’s voice input, billed as voice input, never listed with meetings and deleted a day after it is heard. Its text goes into the draft and the dictation is deleted; if the tab closes or transcription fails first, the next composer in the workspace offers the text.
ChatComposer does this for you. For your own composer, use useVoiceInput from @opengeni/react/recordings, or useNativeDictation from @opengeni/react-native/recordings on phones.
Moving from transcription recordings
The/v1/workspaces/:workspaceId/transcription-recordings routes and the SDK’s createTranscriptionRecording, uploadTranscriptionRecordingChunk, finalizeTranscriptionRecording, processNextTranscriptionRecordingSegment, getTranscriptionRecording, listTranscriptionRecordings and discardTranscriptionRecording are deprecated and answer with Deprecation and Sunset headers. Record a dictation instead:
createRecordingwithpurpose: "dictation"and onemicrophonetrack, then upload and finalize it like any recording, or letuseVoiceInputdo it.- Poll
listRecordingTranscriptVersionsuntil the version iscomplete, then read its text withgetRecordingTranscript. deleteRecordingonce the text is in the draft.
transcribeAudio is unchanged.