Over the past several years, video conferencing platforms such as Zoom, Google Meet, and Microsoft Teams have become a staple of our everyday lives in both professional and personal capacities. Many tools have adapted to meet their users' needs by integrating with these platforms. Despite Google Meet being one of the most popular video call platforms worldwide, much of the data created by a Google Meet is challenging or impossible to get via a native API. If you’ve ever found yourself searching “How to create a Google Meet link via API?” or even, “Does Google Meet have an API?”, this article is for you.
In this article, we’ll walk you through how to achieve the following integrations with Google Meet:
- How to programmatically create a Google Meet
- How to receive Google Meet webhook notifications
- How to retrieve the emails of anyone attending a Google Meet
- How to get Google Meet call recordings
- How to receive video/audio from Google Meet in real-time
If you're interested in getting transcripts from Google Meet, check our post on all of the options to get transcripts from Google Meet.
How to programmatically create a Google Meet
-
The Google Meet REST API allows developers to initiate meetings within their apps. You do need sensitive scopes which requires your app to adhere to this set of guidelines.
-
You can also generate a meeting that always points to the same URL by constructing a link in the format
https://meet.google.com/lookup/[custom-meeting-name]
, where[custom-meeting-name]
is replaced with your desired meeting name. The caveat is that you, or your end user needs to be on a paid Google Workspace (a free Gmail email account won’t have this capability). -
Finally, using the Google Calendar API, you can create a new meeting that has a Google Meet attached. An important caveat to bear in mind: this new Google Meet session will be linked to the calendar associated with your API authentication - so if you are creating this meeting on behalf of your end user, you should have your user grant Oauth permission onto their account, so the calendar event and Google Meet session are accessible to them.
How to receive Google Meet webhook notifications
If you're looking to receive Google Meet webhooks, some events are now supported through the Google Workspace Events API, including when a meeting starts or ends, a participant joins or leaves, or when a recording or transcript is generated. Other events, such as screenshare start/stop or detecting when a participant is actively speaking, still don’t have webhook support. For those cases, you’ll need to rely on workarounds like deploying a meeting bot by calling something like Recall.ai's Meeting Bot API to build a meeting bot that joins a Google Meet. The meeting bot is then able to receive events of when a user joined/left, screenshare starts/stops and more.
How to retrieve the emails of anyone attending a Google Meet
Again, there are no APIs that allow you to do this directly. You could use the Google Meet Attendance Reports feature or Admin SDK reports API mentioned in the previous section to retrieve these emails. You could also use the Google Calendar API to retrieve the participant emails addresses that are visible on the invite.
How to get Google Meet call recordings
If you are on the “Business Standard” tier or above, you will be able to record on Google Meet. These recordings get stored in your Google Drive, under a folder called “Recordings”. By using the Google Drive API, you will be able to access these Google Meet recordings programmatically. Unfortunately, the Google Drive readonly API is a restricted scope and requires you to go through a restricted scope verification process, which costs several thousands of dollars for the security review and a minimum of 2 months to complete. This may not be ideal depending on your budget and timeline.
How to receive video/audio from Google Meet in real-time
Once again, there are no official APIs in GA to retrieve the real-time video or audio streams from Google Meet, but there is a workaround – using a meeting bot that joins the call as a participant. A meeting bot not only allows you to work with the real-time video and audio streams, it also can record the meeting so you don’t need to go through the costly process to retrieve the recording from Google Drive outlined above. Additionally, the meeting bot is able to retrieve participant names and deliver webhook events when participants join/leave, screenshare starts/stops, and more. To create a meeting bot, here is what you need to do:
- Spin up a server. We recommend AWS, GCP, or Digital Ocean.
- Launch an instance of the Google Meet client in a web browser.
- Once you have the Google Meet client launched, use the WebRTC protocol to extract the video and audio streams.
- This will return the video in I420 raw video frames and audio in F32LE raw audio data, so you’ll need to encode the audio and video yourself afterwards.
- 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.
If you do not need real-time, or near real-time, transcripts or audio/video recordings, you can use the Google Drive API to get this data post-call. Relying on the Google Drive API to retrieve transcripts and recordings is prone to human error because of the requirements that transcription must be turned on in the meeting (manually) if you want a transcript and recording must be turned on in the meeting (manually) if you want recordings. In order to access this data your app is also required to have restricted and sensitive scopes which take several weeks to obtain and are costly. The format is also determined by Google with no option to specify the format that you'd like to receive the data in.
If you don't want to build your own meeting bot, you can use Recall.ai's Google Meet Bot API. It’s a simple third-party API that lets you launch meeting bots without you needing to spend months to build, scale and maintain these bots.
Conclusion
While Google has made strides in terms of developer experience and capabilities, there is still a long way to go. In the meantime, we will do the best we can with the tools available.