How to download Google Meet transcripts in n8n

How to Download Google Meet Transcripts Via Event

I came across this problem recently and thought I’d share a quick tutorial since I haven’t seen much written about working with Google Meets in the forum. Hopefully someone finds this useful!

This tutorial shows you how to download transcripts from a Google Meets call via a Calendar Event. An example scenario is that you may want to trigger a AI Agent workflow sometime after a meeting has ended and use the transcripts to perform certain actions (wink wink).

Prerequisites

  • Important! Your Google Meet needs to have been recorded and had transcripts enabled during the call. Unfortunately, none of the below will work for any meeting unless this criteria is met.
  • You may actually need to “own” the meeting and the google drive that the transcripts are saved to since elevated permissions are required. Probably won’t work on external people’s meetings.

Step 1. Get the Calendar Event

To find the meeting transcripts belonging to a calendar event, we must first query for the calendar event ID.

  • For this tutorial, we’ll just use Google Calendar Node to fetch our event details directly.
  • Likely for a real workflow, you would have the trigger obtain the calendar event ID in some other way.

Step 2. Setup Google OAuth2 with Google Meets Scope

Unfortunately, there isn’t a built-in Google Meets node at time of writing so as usual, we’ll fallback on the HTTP node to call the required Google APIs. Let’s create an OAuth2 credential so that we can access the Google Meets APIs.

  • Search for and create a new Google OAuth2 Credential. This is the credential that isn’t tied to any particular Google service.
  • Everything is essentially the same, the only difference being this credential allows you to define a scope. Set the scope to https://www.googleapis.com/auth/meetings.space.readonly

Step 3. Call Google API to fetch “Conference Records”

Conference Records are generated by Google when a call happens for the event. We can get these by using the HTTP node with our OAuth2 credentials defined in the previous step.

Note: Conference records do not always exist. If you don’t have enough permissions, if the call never took place or wasn’t recorded, this endpoint returns no records.

  • Use a HTTP node and point it at https://meet.googleapis.com/v2/conferenceRecords
  • Define a query parameter of filter and use the value space.meeting_code=X where X is the event ID.

Step 4. Call Google API to Fetch Transcript Location

With the Conference Record ID, we now have to fire off another HTTP request to get the location of the transcript file, which is typically saved to the meeting organiser’s Google Drive as a Google Doc.

  • Use another HTTP node and point it at https://meet.googleapis.com/v2/{{ $json.conferenceRecords[0].name }}/transcripts
  • Again, using our Google Meets OAuth2 credential created in step 2.
  • No body or query parameters are required.

Step 5. Download Transcript from Google Drive

Finally, once we have the document location of the transcript, we can simply use the Google Drive node to download the file.

  • Use Google Drive node for “File” and “Download” and under File, choose to set via URL and use the document location of the transcript.
  • Bonus tip: Use the Google file conversion options to automatically convert google documents into PDF for easier processing.

Conclusion

That’s it, now you’re able to fetch any number of transcripts for any Google Meet that allows it. Easy once you know how but difficult when you’re just starting out with no references so hopefully this will help someone else down the line. If you are running into problems, it’s most probably to do with permissions so be sure to triple check those otherwise, feel free to ping me if you get stuck.

All the best,
Jim
Find me on LinkedIn or Twitter.

2 Likes

Thanks for sharing, @Jim_Le !

1 Like

Great work Jim! This is really clear tutorial.

2 Likes