Google Meet Bots

Zero-setup meeting bots for Google Meet

View as Markdown

Google Meet needs no setup at all — a single create_bot call puts a bot in the meeting:

$curl -X POST "https://api.meetstream.ai/api/v1/bots/create_bot" \
> -H "Authorization: Token <YOUR_API_KEY>" \
> -H "Content-Type: application/json" \
> -d '{
> "meeting_link": "https://meet.google.com/abc-defg-hij",
> "bot_name": "Notetaker"
> }'

Need a meeting to test against? Open meet.new while signed in — you’re the host of that meeting, so you can admit your own bot.

Lobby and admission

MeetStream bots join Google Meet anonymously by default, which means Meet’s admission rules apply:

  • With Host management on, only the host and co-hosts (and in some configurations trusted Workspace users) can see and admit lobby participants. Regular attendees often can’t see the request at all — to them it looks like the bot never arrived, while MeetStream correctly reports bot.in_waiting_room.
  • If nobody admits the bot before waiting_room_timeout (60–600s on Meet, default 600), it leaves with bot.notallowed.
  • If someone explicitly rejects the request, you get bot.denied.
  • MeetStream cannot override the organizer’s meeting-access settings or Workspace policies.

Once admitted, Meet bots go straight from bot.inmeeting to bot.recording — there is no recording-permission gate like Zoom’s.

Deep dive with troubleshooting flows: Google Meet Lobby & Admission.

Signed-in bots: skip the waiting room

A signed-in bot logs into a real Google account before joining, so it appears as a named participant instead of an anonymous guest — and if that account’s email is on the calendar invite, it skips the waiting room entirely.

1{
2 "meeting_link": "https://meet.google.com/abc-defg-hij",
3 "bot_name": "Notetaker",
4 "google_meet": {
5 "login_required": true,
6 "google_login_domain": "yourdomain.com"
7 }
8}

Requirements: a Google Workspace account on a custom domain, admin console access for a one-time SSO profile, and uploading a certificate per login in the dashboard (Integrations → Google Signed-In Bots). Scaling rule of thumb: one login per ~20 concurrent Meet sessions; MeetStream distributes bots across logins round-robin. Identities can also be managed via the Google Login endpoints.

Note: a signed-in bot’s visible name and avatar come from the Google account, not from bot_name.

Full walkthrough: Google Signed-In Bots.

Google Meet behavior at a glance

BehaviorOn Google Meet
SetupNone
AdmissionAnonymous by default; signed-in bots on the invite skip the lobby
Recording startImmediately after joining (no permission gate)
Timeout defaultswaiting_room_timeout 600 (max 600), noone_joined_timeout 600, everyone_left_timeout 600
Per-participant audioPartial isolation — up to 3 concurrent speaker streams via WebRTC CSRC demuxing, attributed to the active speaker
Per-participant videoWebcam up to 854×480 @ 800 kbps; screen share up to 1280×720 @ 2 Mbps; multiple concurrent screen shares (unique to Meet)
Native captionsSupported via the meeting_captions transcription provider
Pause/resume recordingSupported — guide
QuirkParticipant names can show “Unknown” for the first ~10 seconds while Meet’s name resolver populates

Calendar auto-join

Connect a Google Calendar (any account — personal Gmail or Workspace) and MeetStream detects meeting links in upcoming events and can schedule bots automatically, joining one minute before start. Recurring meetings, per-event overrides, and rescheduling are all handled — see the Scheduling guide and Google Calendar OAuth Setup.

Next steps