Google Meet Transcript Bot
Pricing
from $99.00 / 1,000 minutes
Google Meet Transcript Bot
Google Meet Bot API for meeting transcription & intelligence. Join calls programmatically, capture speaker-diarized transcripts from live captions, and export JSON/Markdown via REST API, webhooks, n8n & Zapier. Build AI notetakers and automate meeting notes.
Pricing
from $99.00 / 1,000 minutes
Rating
0.0
(0)
Developer
Lexis Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Google Meet Bot API — Audio Recording & Meeting Intelligence
Programmatic Google Meet bots that join calls, capture meeting audio, and deliver recordings via REST API — built as an Apify Actor for developers who want meeting capture without building browser automation from scratch.
Send a bot to any Google Meet. Get a WebM audio recording and meeting metadata — all through Apify's production-grade API, webhooks, and integrations.
Why this over Recall.ai, Vexa, or rolling your own?
| Lexis Meet Agent | Typical meeting-bot APIs | |
|---|---|---|
| API platform | Full Apify REST API — runs, KV store, webhooks, schedules | Custom REST + WebSocket |
| Audio recording | WebM audio written to KV store at meeting end (chunked during call) | MP4, separate audio streams |
| Transcription | Not included — pipe recording.webm to your own STT (Whisper, Deepgram, etc.) | Built-in STT / diarization |
| Source code | Open Actor — fork, self-host, audit | Closed / partial open source |
| Scaling | Apify cloud — concurrent runs, retries, monitoring | Managed infra |
| Integrations | n8n, Zapier, Make, webhooks, any HTTP client | Platform-specific |
| Join model | Guest bot (host admits) or authenticated Google session | Often no host permission required |
Best fit: engineering teams building meeting capture pipelines, AI notetakers, sales call logging, compliance archives, or agentic apps — who want API-first control and Apify's developer ecosystem instead of a closed meeting-BaaS.
Compare: Recall.ai Google Meet Bot API · Vexa Meeting Transcription API
What you get
Google Meet Bot API primitives
- Automatic join & leave — bot joins via meeting URL, stays for the call, exits on alone-timeout, max duration, or removal
- Custom bot identity — set display name per meeting (
botName) - Audio recording — captures incoming WebRTC audio via in-browser
MediaRecorder; uploads 10-second chunks during the call - Meeting metadata — run status, chunk counts, byte totals, end reason in
status.jsonandrecording.json - Post-meeting output — combined
recording.webmplus per-chunkaudio/chunk-*.webmfiles in the KV store - Agent-ready data — feed recordings into your STT, LLMs, CRMs, or compliance archives
Built for AI agents & automation
- REST API for every operation — start bots, fetch recordings and artifacts
- Webhooks on run finish — trigger n8n, Zapier, or your backend when a meeting ends
- Schedules — calendar-driven bot deployment via Apify Schedules
- Concurrent bots — run unlimited parallel meetings (Apify platform limits apply)
- Observable runs — live logs and run history in Apify Console
Two API calls to meeting audio
1. Start a Google Meet bot
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~google-meet-transcription-bot/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"meetingUrl": "https://meet.google.com/abc-defg-hij","botName": "Acme Recorder","aloneTimeoutSecs": 120}'
2. Get the recording (after the meeting ends)
Audio artifacts (available once the run completes):
# Combined WebM recordingcurl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/recording.webm?token=YOUR_APIFY_TOKEN" \--output meeting.webm# Recording metadata (chunk keys, mime type, byte counts)curl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/recording.json?token=YOUR_APIFY_TOKEN"# Run status (joining → recording_active → ended)curl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/status.json?token=YOUR_APIFY_TOKEN"
Individual chunks are also available at audio/chunk-00001.webm, audio/chunk-00002.webm, etc.
TypeScript / JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });// Join the meetingconst run = await client.actor('YOUR_USERNAME/google-meet-transcription-bot').call({meetingUrl: 'https://meet.google.com/abc-defg-hij',botName: 'Meeting Recorder',});// Combined audio recordingconst store = client.keyValueStore(run.defaultKeyValueStoreId);const recording = await store.getRecord('recording.webm');const metadata = await store.getRecord('recording.json');console.log(metadata.value); // { chunkCount, totalBytes, mimeType, ... }
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("YOUR_USERNAME/google-meet-transcription-bot").call(run_input={"meetingUrl": "https://meet.google.com/abc-defg-hij","botName": "Meeting Bot",})store = client.key_value_store(run["defaultKeyValueStoreId"])metadata = store.get_record("recording.json")audio = store.get_record("recording.webm")
Webhook on meeting end
const run = await client.actor('YOUR_USERNAME/google-meet-transcription-bot').call({ meetingUrl: 'https://meet.google.com/abc-defg-hij' },{webhooks: [{eventTypes: ['ACTOR.RUN.SUCCEEDED', 'ACTOR.RUN.FAILED'],requestUrl: 'https://your-app.com/webhooks/meeting-ended',},],},);
Or configure a permanent webhook on the Actor in Apify Console → your Actor → Integrations → Webhooks.
Your webhook receives the run payload with links to the key-value store — fetch the recording and push to your STT pipeline, S3, or compliance archive.
How it works
Meeting URL → Apify API → Bot joins Meet → Audio capture ON → Bot leaves → recording.webm
- Launch — Camoufox (anti-fingerprint Firefox) via Playwright on Apify infrastructure
- Join — guest join with your
botName, mic/camera off, keyboard-driven lobby navigation - Admit — waits for host admission (configurable timeout)
- Record — hooks
RTCPeerConnectionto mix incoming remote audio tracks;MediaRecorderwrites WebM chunks every 10 seconds - Upload — each chunk is saved to the KV store during the call; chunks are concatenated into
recording.webmat the end - End — leaves on alone-timeout, max duration, or removal
- Deliver — writes
recording.webm,recording.json, andstatus.jsonto the KV store
No built-in speech-to-text. Transcription quality depends on your STT provider applied to the recording.
Input
| Field | Required | Default | Description |
|---|---|---|---|
meetingUrl | Yes | — | Google Meet link (https://meet.google.com/...) |
botName | No | Notetaker | Bot display name shown to participants |
maxDurationSecs | No | 7200 | Max time in meeting (0 = unlimited) |
aloneTimeoutSecs | No | 5 | Leave when bot is alone this long |
admissionTimeoutSecs | No | 600 | Wait for host to admit the bot |
Output
Key-Value Store — meeting artifacts
| Key | Description |
|---|---|
recording.webm | Combined WebM audio of the meeting (all chunks concatenated) |
recording.json | Metadata: mime type, chunk keys, byte counts, duration, end reason |
audio/chunk-*.webm | Individual 10-second recording chunks uploaded during the call |
status.json | Live run status (joining → recording_active → ended) |
Status lifecycle
starting → joining → admitted → recording_active → ended
Terminal states: blocked_guest, admission_timeout, error
status.json during recording includes chunkCount, totalBytes, and trackCount.
Use cases
- Sales & revenue — archive discovery calls and demos; transcribe with your own STT
- Engineering — record standups / retros for async review or AI summarization
- HR & recruiting — interview audio archives for compliance and review
- Compliance — meeting audio recordkeeping with consent
- AI notetakers — capture audio on Apify, transcribe and summarize in your pipeline
- Workflow automation — n8n/Zapier triggers on
ACTOR.RUN.SUCCEEDED
Requirements & limitations
Works with
- Google Meet on all common Workspace tiers (guest join where org policy allows)
- Free Google accounts when guest access is permitted
Limitations
- Host must admit the guest bot
- Some organizations block guest joins — run exits with
blocked_guest - Audio only — no video recording, screenshare capture, or chat messages
- Incoming audio only — bot joins with mic muted; captures remote participant WebRTC audio tracks
- Recording requires Meet to deliver audio over WebRTC to the browser — if no remote tracks connect,
chunkCountwill be0 - No built-in transcription or speaker diarization — add your own STT step
- Google Meet only — Microsoft Teams and Zoom not supported in this Actor
- Real-time delivery is via KV store chunk uploads during the call (not a dedicated WebSocket)
Consent
This Actor captures meeting audio, which may constitute recording in some jurisdictions. You are responsible for obtaining consent from meeting participants before use.
Architecture
| Layer | Technology |
|---|---|
| Platform | Apify Actors |
| Browser | Camoufox + Playwright (Firefox) |
| Interaction | Ghost cursor, semantic locators, keyboard shortcuts |
| Recording | WebRTC track hook + MediaRecorder (WebM/Opus) |
FAQ
Does this work as a Google Meet recording API?
Yes. Start a run with a Meet URL; retrieve recording.webm and recording.json from the KV store once the run completes.
Do I need the host's permission? For guest join, the host (or someone with admit rights) must let the bot into the meeting.
Can I get real-time audio during the call?
Chunks are uploaded to the KV store every ~10 seconds as audio/chunk-*.webm. Poll those keys during the run, or wait for the combined recording.webm at the end.
How does this compare to Recall.ai? Recall.ai offers built-in transcription, video capture, wider platform support, and often no-admit joins. This Actor is audio-only, open source, and runs on Apify's API — you bring your own STT.
How does this compare to Vexa? Vexa is open-source meeting-bot infrastructure with WebSockets and self-hosting. This Actor gives you a deploy-ready Google Meet bot on Apify with a "send URL → get recording" developer experience.
Can I run multiple bots at once? Yes. Each meeting is a separate Apify Actor run. Scale concurrent bots via Apify platform limits and billing.
Can I schedule bots for calendar meetings? Use Apify Schedules or trigger runs from your calendar integration (Google Calendar → webhook → Apify API).
Is there speaker diarization?
Not built in. Run your preferred STT service on recording.webm for transcription and diarization.
Google Meet Bot API · Meeting Audio Recording · WebRTC Capture · Meeting Intelligence · Apify Actor
👀 p.s.
Got feedback or need an extension?
Lexis Solutions is a certified Apify Partner. We can help you with custom solutions or data extraction projects.
Contact us over Email or LinkedIn
Support Our Work 💝
If you're happy with our work and scrapers, you're welcome to leave us a company review here and leave a review for the scrapers you're subscribed to. It will take you less than a minute but it will mean a lot to us!
