Post Transcription & Summary - iOS
This guide will walk you through the necessary steps to enable post-transcription functionality in your application, allowing users to access transcriptions of room recordings.
You can also set up webhooks for post transcription.
Please ensure eligibility prior to enabling post-transcription. For further details, please contact us.
Integrating Post Transcription Feature

In the image above, the recording begins with transcription and summary features turned on. This triggers a webhook call for the start of recording. When the recording stops, another webhook is activated. After the recording, transcription starts, which triggers a webhook. Once the transcription is finished, the summary is generated, and then another webhook is triggered.
Step 1: Configure Post Transcription & Summary
- In this step, we set up the configuration for post transcription and summary generation. We define the webhook URL where the webhooks will be received.
- Swift
// Webhook URL where, webhooks are received
let webhookUrl = "https://www.example.com"
// Post Transcription Configuration
let transcription: PostTranscriptionConfig = PostTranscriptionConfig(
enabled: true,
summary: SummaryConfig(
enabled: true,
prompt: "Write summary in sections like Title, Agenda, Speakers, Action Items, Outlines, Notes and Summary"
)
)
Step 2: Start Recording with Transcription Configuration
- Once the configuration is set, we initiate the recording process for the room, incorporating the transcription configuration we defined earlier.
startRecording()isasync throws. Call it withtry awaitinside aTask, after you join the room. If the call fails, for example because the server refuses the request, it throws aVideoSDKError.
- Swift
// Start Recording
Task {
do {
try await room?.startRecording(webhookUrl: webhookUrl, transcription: transcription)
} catch {
print("Failed to start recording: \(error)")
}
}
Step 3: Stop Recording
- When the room concludes or recording is no longer needed, we stop the recording process.
stopRecording()is alsoasync throws.
- Swift
// Stop Recording
Task {
do {
try await room?.stopRecording()
} catch {
print("Failed to stop recording: \(error)")
}
}
Step 4: Fetch Post Transcriptions
-
After the room recording is stopped, post transcription and summary data can be obtained using the Post Transcription API.
-
The API provides information such as the status of transcription, file paths for transcription data in various formats (JSON, SRT, TXT, TSV, VTT), and a summarized text file.
-
The transcription document is structured as follows:
{
"id": "40b0a4ed-9842-40c9-a288-e4b1bf98a90a",
"status": "completed",
"roomId": "abc-xyzw-lmno",
"sessionId": "621497578bea0d0404c35c4c",
"recordingId": "65d303d6d2c373dfd71b38a2",
"filePath": "https://cdn.videosdk.live/encoded/videos/dummy.mp4",
"transcriptionFilePaths": {
"json": "https://cdn.videosdk.live/transcriptions/dummy/dummy.json",
"srt": "https://cdn.videosdk.live/transcriptions/dummy/dummy.srt",
"txt": "https://cdn.videosdk.live/transcriptions/dummy/dummy.txt",
"tsv": "https://cdn.videosdk.live/transcriptions/dummy/dummy.tsv",
"vtt": "https://cdn.videosdk.live/transcriptions/dummy/dummy.vtt"
},
"summarizedFilePaths": {
"txt": "https://cdn.videosdk.live/transcriptions/dummy/dummy-summary.txt"
},
"userStorage": null,
"start": "2024-02-27T16:00:36.828Z",
"end": "2024-02-27T16:01:46.939Z"
}
Please be aware that there may be a delay in processing the transcription data after the recording has been stopped. This delay could vary depending on factors such as server load and the duration of the room session.
API Reference
The API references for all the methods utilized in this guide are provided below.
Got a Question? Ask us on discord

