Google Meet Transcript Bot avatar

Google Meet Transcript Bot

Under maintenance

Pricing

from $99.00 / 1,000 minutes

Go to Apify Store
Google Meet Transcript Bot

Google Meet Transcript Bot

Under maintenance

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

Lexis Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Meet Bot API — Transcription & Meeting Intelligence

Programmatic Google Meet bots that join calls, capture speaker-diarized transcripts, and deliver structured meeting data via REST API — built as an Apify Actor for developers who want meeting intelligence without building browser automation from scratch.

Send a bot to any Google Meet. Get diarized transcripts 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 AgentTypical meeting-bot APIs
API platformFull Apify REST API — runs, datasets, KV store, webhooks, schedulesCustom REST + WebSocket
TranscriptsFull diarized transcript written to Dataset and KV store at meeting endReal-time WebSocket / webhook
Speaker diarizationNative Google Meet captions with per-speaker attributionSTT diarization
Audio / video recordingNot included (captions-only)MP4, separate audio streams
Source codeOpen Actor — fork, self-host, auditClosed / partial open source
ScalingApify cloud — concurrent runs, retries, monitoringManaged infra
Integrationsn8n, Zapier, Make, webhooks, any HTTP clientPlatform-specific
Join modelGuest bot (host admits) or authenticated Google sessionOften no host permission required

Best fit: engineering teams building meeting intelligence, AI notetakers, sales call logging, interview transcription, compliance workflows, 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, removal, or exit phrases
  • Custom bot identity — set display name per meeting (botName)
  • Transcription — live captions observed via DOM MutationObserver; full diarized transcript written at meeting end
  • Speaker-diarized transcripts — each segment includes speaker and text
  • Meeting metadata — run status, segment counts, end reason, meeting URL in status.json and transcript.json
  • Post-meeting output — full TRANSCRIPT.md and structured transcript.json
  • Multi-language captions — configure caption language (en, es, de, …)
  • Agent-ready data — feed transcripts into LLMs, CRMs, ticketing, or RAG pipelines

Built for AI agents & automation

  • REST API for every operation — start bots, read final transcripts 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, screenshots, and run history in Apify Console

Two API calls to meeting intelligence

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 Notetaker",
"captionLanguage": "en",
"aloneTimeoutSecs": 120
}'

2. Get the transcript (after the meeting ends)

Transcript segments (available once the run completes):

# Structured JSON
curl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/transcript.json?token=YOUR_APIFY_TOKEN"
# Human-readable Markdown
curl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/TRANSCRIPT.md?token=YOUR_APIFY_TOKEN"
# Run status (joining → captions_active → ended)
curl "https://api.apify.com/v2/key-value-stores/STORE_ID/records/status.json?token=YOUR_APIFY_TOKEN"

TypeScript / JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
// Join the meeting
const run = await client.actor('YOUR_USERNAME/google-meet-transcription-bot').call({
meetingUrl: 'https://meet.google.com/abc-defg-hij',
botName: 'Vexa-style Notetaker',
});
// Diarized transcript segments
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
// [{ speaker: "Alice", text: "..." }, ...]
// Full transcript artifact
const store = client.keyValueStore(run.defaultKeyValueStoreId);
const transcript = await store.getRecord('transcript.json');

Python

from apify_client import ApifyClient
client = 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",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["speaker"], item["text"])

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 dataset and key-value store — fetch transcripts and push to Salesforce, HubSpot, Linear, Slack, or your vector DB.


How it works

Meeting URL → Apify API → Bot joins Meet → Captions ON → Bot leaves → Transcript artifacts
  1. Launch — Camoufox (anti-fingerprint Firefox) via Playwright on Apify infrastructure
  2. Join — guest join with your botName, mic/camera off, keyboard-driven lobby navigation
  3. Admit — waits for host admission (configurable timeout)
  4. Transcribe — enables Google Meet live captions, observes caption DOM with MutationObserver
  5. Diarize — accumulates per-speaker turns; speaker change triggers segment commit
  6. End — leaves on alone-timeout, max duration, removal, or configurable exit phrases
  7. Deliver — writes full TRANSCRIPT.md, transcript.json, and status.json to the KV store; pushes segments to the Dataset

No audio capture. No speech-to-text API. Transcription quality follows Google Meet captions for the selected language.


Input

FieldRequiredDefaultDescription
meetingUrlYesGoogle Meet link (https://meet.google.com/...)
botNameNoNotetakerBot display name shown to participants
maxDurationSecsNo7200Max time in meeting (0 = unlimited)
captionLanguageNoenCaption language code (en, es, de, …)
aloneTimeoutSecsNo5Leave when bot is alone this long
admissionTimeoutSecsNo600Wait for host to admit the bot
storageStatePathNoPlaywright storage state from a signed-in Google account (more reliable than guest)

Output

Dataset — transcript segments

One row per speaker turn, written to the Dataset when the meeting ends:

{
"speaker": "Alice Chen",
"text": "We need to finalize the API contracts by Friday."
}

Fetch GET /v2/actor-runs/{runId}/dataset/items after the run completes.

Key-Value Store — meeting artifacts

KeyDescription
transcript.jsonFull structured transcript + metadata
TRANSCRIPT.mdHuman-readable transcript
status.jsonLive run status (joiningcaptions_activeended)
SELECTOR_PROBE.jsonDebug: caption selector health

Status lifecycle

startingjoiningadmittedcaptions_activeended

Terminal states: blocked_guest, admission_timeout, error


Use cases

  • Sales & revenue — auto-log discovery calls, demo notes, competitor mentions to CRM
  • Engineering — standup / retro transcripts for AI coding agents and ticket creation
  • HR & recruiting — interview transcription with speaker attribution
  • Compliance — meeting recordkeeping where caption-based capture is acceptable
  • AI notetakers — build your own Otter/Fireflies alternative on Apify
  • 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
  • Multi-language live captions supported by Google Meet

Limitations

  • Host must admit the guest bot (unless using an authenticated storageStatePath session)
  • Some organizations block guest joins — run exits with blocked_guest
  • Captions-only — no audio recording, video recording, screenshare capture, or chat messages
  • Google Meet only — Microsoft Teams and Zoom not supported in this Actor
  • Google Meet's DOM is not a public API; selectors may need updates when Meet changes
  • Caption quality varies by language, accent, and Meet's own STT
  • Real-time delivery is via Dataset polling (sub-second segment finalization; not a dedicated WebSocket)

Consent

This Actor captures meeting captions, which may constitute recording in some jurisdictions. You are responsible for obtaining consent from meeting participants before use.


Architecture

LayerTechnology
PlatformApify Actors
BrowserCamoufox + Playwright (Firefox)
InteractionGhost cursor, semantic locators, keyboard shortcuts
TranscriptionGoogle Meet live captions (DOM scrape)

FAQ

Does this work as a Google Meet transcription API? Yes. Start a run with a Meet URL; retrieve diarized transcript segments from the Dataset API and full artifacts 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. For stricter orgs, use a signed-in Google session via storageStatePath.

Can I get real-time transcripts? Not currently — segments are written to the Dataset when the meeting ends. Use the status.json key-value record to monitor the bot's state (joiningcaptions_activeended) and fetch the transcript after the run completes.

How does this compare to Recall.ai? Recall.ai offers audio/video capture, wider platform support, and often no-admit joins. This Actor is caption-based (simpler compliance surface), open source, and runs on Apify's API with webhooks, schedules, and integrations you may already use.

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 the same "send URL → get transcript" developer experience, plus Apify's managed scaling and ecosystem.

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? Yes — speaker names come from Google Meet's live caption UI, attributed per segment.


Google Meet Bot API · Meeting Transcription API · Real-Time Transcripts · Speaker Diarization · 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!