How to access raw audio in electron app?

Description

I need to access the live Audio Stream of a Zoom meeting within my desktop app. This app is built on top of Electron Framework.

As per my investigation, accessing RAW Audio Stream using Zoom Meetings SDK seems to be the best approach. There seem to be certain advantages and limitations:

  • Can be done for any user (with them being on any plan)
  • Computation needed to process the audio stream can be offloaded to the user system.
  • Requires the host to approve the local recording for the bot (if initiated by a participant).

Problem
It looks like the only way of accessing the live audio stream is using the StartRawRecording method - however, this method is not available through the electron SDK. I went through the SDK reference and the code available via SDK itself, but I couldn’t find the StartRawRecording method.

Questions

  1. Is StartRawRecording the only way to access the audio stream from a Desktop App? Is there any other method available via Meeting SDK for the Electron based desktop apps to access the audio stream?
  2. Is there a way to access the audio stream in Desktop App without initiating a local recording?

Which Electron Meeting SDK version?
v5.14.2.17263

Additional context
Electron Version: 19.1.9

@sumeetsd Hope you will be fine.

Yes, there is no Raw Data Access API available in Electron Meeting SDK. You can use Zoom native SDKs (Windows, macOS) to access raw streams.

Thanks.

Is there a way to access these streams in the server - without much user interaction? We are targeting an approach where user sends our bot/application a calendar invite, and when the meeting happens - it accesses the audio stream and performs certain tasks.

I came across a couple of approaches of doing so, but they don’t seem feasible or involve quite a lot of user interactions:

  1. RTMP - Users need to configure the stream every time they do the meeting. Plus, it gives the user wrong idea that their meeting is being streamed.
  2. Meeting SDK - Fetching recording is not feasible via Electron app - needs windows and mac desktop apps instead.
  3. Zoom Cloud Recording - Accessing live streams is not possible, and the recording is available after the meeting ends. Also, it needs the host to record the meetings manually. Not ideal for all the meetings (for ex 1:1 meetings)

Another Question: Can we use the Meeting SDK to join multiple different meetings at the same instance as different users in the same Windows-based Virtual Machine?

@sumeetsd, it is definitely possible for a workflow where your user sends your bot a calendar invite and it accesses the meeting audio stream.

It’s true that RTMP, the meeting SDK, and Zoom cloud recording involve more friction for your user/may not be feasible if you want to access the real-time streams.

The best way seems to be a meeting bot that joins the call to access the streams. It gets the real-time audio streams, no config needed, no installation from your user needed.

To create a meeting bot, here is how you’d do it:

  1. Spin up a server. We recommend AWS, GCP, or Digital Ocean.
  2. Use either the Windows or Mac Zoom SDK to launch an instance of the Zoom client.
  3. Once you have the Zoom SDK launched, and use the Raw Data functionality to extract the video and audio streams.
  4. This will return the video in I420 raw frames and audio in PCM 16LE raw format, so you’ll need to encode the audio and video yourself afterwards.
  5. Once you have one instance of this working, you’ll need to scale this across several servers if you want to run multiple bots simultaneously, which is required to have bots for multiple meetings.

Another option is Recall.ai. It’s a simple 3rd party API that lets you use meeting bots to get the raw audio/video from meetings without you needing to spend months to build, scale and maintain these bots.

Let me know if you have any questions!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.