Skip to main content
Attendee provides support for Google Meet through a Chrome-based automation approach, as Google Meet does not offer an official bot SDK.

Overview

Google Meet bots use Selenium WebDriver to control a Chrome browser instance that joins the meeting. This approach enables full access to meeting features while appearing as a standard meeting participant. Platform Type: Web-based (Chrome automation)

Capabilities

Google Meet bots support the following features:
  • Join and leave meetings
  • Audio and video recording
  • Real-time transcription via closed captions
  • Send and receive chat messages
  • Audio and video input/output
  • Screen sharing capture
  • Custom participant name
  • Video playback into meetings

Technical Implementation

Google Meet integration is built on top of Attendee’s WebBotAdapter class, which provides:
  • Chrome WebDriver automation
  • WebSocket communication for media streaming
  • DOM manipulation for UI interaction
  • Custom JavaScript injection for enhanced control
Key Components:
  • google_meet_bot_adapter.py - Main adapter implementation
  • google_meet_ui_methods.py - UI interaction methods
  • google_meet_chromedriver_payload.js - Browser-side JavaScript

Setup Requirements

1

Attendee API Key

Create an account in your Attendee instance and obtain an API key from Settings → API Keys.
2

Chrome/Chromium Browser

Ensure Chrome or Chromium is installed in your Attendee deployment. This is included by default in Attendee Docker images.
3

Deepgram API Key (Optional)

Required only if using Attendee’s transcription. Google Meet’s native closed captions can be used as an alternative.
No Google-specific credentials are required for basic functionality. Bots join as guest participants by default.

Meeting Access

Guest Access (Default)

By default, Google Meet bots join as guest participants. This works for:
  • Public meetings (anyone with link can join)
  • Meetings where host allows guest participants

Authenticated Access

For meetings that require Google account login:
1

Enable Bot Login

Configure Google account credentials in Attendee settings (contact Attendee support for availability).
2

Automatic Retry

If a bot encounters a login requirement, Attendee can automatically retry with authentication if credentials are available.
{
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "google_meet_settings": {
    "use_bot_login": true
  }
}

Closed Captions & Transcription

Google Meet provides native closed captions that can be used for transcription:

Language Configuration

Specify the closed captions language when creating a bot:
{
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "google_meet_settings": {
    "closed_captions_language": "en-US"
  }
}
Supported Languages:
  • English (en-US, en-GB, etc.)
  • Spanish (es-ES, es-MX, etc.)
  • French (fr-FR)
  • German (de-DE)
  • And many more - any language supported by Google Meet captions
The closed captions language can be updated dynamically during the meeting if needed.

Deepgram Transcription

Alternatively, use Attendee’s Deepgram integration for transcription with higher accuracy and more language options.

Video Recording

Google Meet bots can record video by capturing the DOM:
{
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "google_meet_settings": {
    "modify_dom_for_video_recording": true
  }
}
Enabling modify_dom_for_video_recording may alter the meeting UI appearance to optimize video capture. Use only when video recording is required.

Sending Media

Video Playback

Play video files into the meeting:
# Play video once
bot.send_video("https://example.com/video.mp4", loop=False)

# Loop video continuously
bot.send_video("https://example.com/video.mp4", loop=True)

Chat Messages

Send messages to the meeting chat:
POST /api/v1/bots/{bot_id}/send_chat_message
{
  "message": "Hello from Attendee bot!"
}

Platform-Specific Settings

Configure Google Meet-specific behavior when creating bots:
{
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "bot_name": "My Bot",
  "google_meet_settings": {
    "closed_captions_language": "en-US",
    "modify_dom_for_video_recording": false,
    "use_bot_login": false
  },
  "automatic_leave_settings": {
    "meeting_empty_timeout_seconds": 300
  }
}

Known Limitations

  • No Official SDK: Google Meet doesn’t provide a bot SDK, so integration relies on browser automation which can be affected by UI changes
  • Login Required Meetings: Meetings requiring Google account login need authenticated bot access
  • Performance: Chrome automation uses more resources than native SDK implementations
  • UI Dependencies: Bot functionality depends on Google Meet’s web UI structure
Google may update their Meet UI at any time, which could temporarily affect bot functionality until Attendee adapts to the changes.

Automatic Leave Behavior

Configure when bots should automatically leave meetings:
{
  "automatic_leave_settings": {
    "meeting_empty_timeout_seconds": 300,
    "meeting_only_bots_timeout_seconds": 120,
    "authorized_user_not_in_meeting_timeout_seconds": 600
  }
}

Best Practices

  1. Use descriptive bot names - Help meeting participants identify the bot’s purpose
  2. Configure appropriate timeouts - Prevent bots from staying in empty meetings
  3. Test meeting access - Verify whether meetings require authentication before deployment
  4. Monitor bot status - Use webhooks to track bot state changes
  5. Handle login gracefully - Implement retry logic for meetings requiring authentication

Troubleshooting

Bot Cannot Join Meeting

  • Check if meeting requires Google account login
  • Verify meeting URL format is correct
  • Ensure meeting hasn’t expired or been cancelled

Captions Not Working

  • Verify the specified language is supported by Google Meet
  • Check if meeting host has enabled captions
  • Ensure closed_captions_language matches meeting language

Video Quality Issues

  • Try enabling modify_dom_for_video_recording
  • Check network bandwidth and stability
  • Verify Chrome browser version compatibility

Resources

Build docs developers (and LLMs) love