We are developing a Zoom App and are using the
endpoint to get the Audio Transcript for Cloud Recorded Meetings after the meeting is done.
We process the transcript once ready, after the audio is transcribed by Zoom. This approach has limitations:
Requires User to have Business License
Requires Cloud Recording
Must occur after a meeting cloud recording audio is transcribed
What we want
To processing a transcript of the meeting
live while the meeting is running, like Closed Captioning might, regardless of recording status. Enable our app functionality to non-business license users as the Audio Transcript is the only Business License level feature we are using.
Our specific technical goal
Programmatically get audio stream of a meeting (not livestream — which if I understand correctly
forces the meeting to be public). What is the right way to do this?
Alternatively programmatically retrieving the audio transcript segments (as text) streamed, or even as event, or a webhook based solution, etc.
Would it be possible via…
Note: I have seen a number of questions here in devforum on this general topic over the years but not finding a
recent one that factor in the latest functionality: Live Transcription and Closed Captioning features of Zoom Meeting Web SDK. Or perhaps just havent seen clear guidance on the ideal approach to retrieve meeting audio from a Zoom App.
Thank you in advance for any and all guidance.
@gibron, a Zoom App doesn’t allow you to capture the real-time audio or transcript, you must use a separate method to capture the data, but you can pipe it back to your Zoom App to display.
Unfortunately, there are no direct API endpoints to access the real-time transcript. However, here are 4 other ways you could explore to create a real-time transcript from a Zoom meeting.
1. Use the Zoom RTMP live-streaming API
Doesn’t require any 3rd party services
Lighter weight than building and running a Zoom bot
Needs to initiated on a per-meeting basis
You need to set up an RTMP server to receive the data, which requires engineering effort to deploy, scale, and monitor
Participants can get spooked by the “live” badge that appears in the meeting (even if it’s a privte meeting)
No speaker separation
2. Build a desktop app to capture users’ computer audio
One of the most cost effective solutions
You need to build a separate app for Windows, Mac and Linux
It is especially difficult to tap into computer audio on Mac
App runs on users’ computer so it can slow their computer down/make computer fans go off
No speaker separation
3. Build a Zoom bot
Can get the separate audio streams per participant for perfect diarization / speaker labels
It is very heavy-weight as you would need to spin up multiple servers to run the Zoom client for the bot
Running infrastructure for Zoom bot costs more than live streaming.
You need to encode the raw video and audio yourself
4. Use Recall.ai
It’s a unified API that lets you send meeting bots to video conferencing platforms to capture the audio,
video and transcription in real-time.
Handles spinning up the servers, and providing the real-time raw audio/transcript so all you interact with is a simple API.
Works on any Zoom plan (including Free)
Gets speaker diarization / speaker labels
Works agnostic of meeting platform
It’s another 3rd party service in your stack
Let me know if you have any questions!
@amanda-recallai Amazing, thank you for offering your insight here! I’ll just add a couple of relevant links for @gibron or anyone else:
Meeting Bots: Accessing Media Streams
Some additional info on using RTMP:
Zoom supports streaming to Facebook, YouTube, or a custom service. In each case, Zoom uses the RTMP protocol to steam the meetings.
What is RTMP?
Real-Time Messaging Protocol or RTMP is a protocol for streaming audio, video, and other data across the internet. RTMP works over TCP (port 1935 by default) in order to deliver a persistent and low latency connection.
Continue reading this thread for use cases, examples, and further resources.
@amanda-recallai thank you for your thoughtful response and overall support!
And @MaxM thank you also!
Both have given us a lot to think through and determine our best path forward. Cheers!