Name | google-meet-bot JSON |
Version |
0.0.1
JSON |
| download |
home_page | None |
Summary | Automate joining Google Meet, record audio, transcribe with Whisper, and summarize using GPT. |
upload_time | 2025-08-12 09:33:01 |
maintainer | None |
docs_url | None |
author | Dhruv Patel |
requires_python | >=3.8 |
license | MIT License
Copyright (c) 2025 Dhruv Patel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. |
keywords |
audio
bot
google-meet
openai
selenium
transcription
whisper
|
VCS |
 |
bugtrack_url |
|
requirements |
annotated-types
anyio
attrs
certifi
cffi
distro
exceptiongroup
h11
httpcore
httpx
idna
jiter
numpy
openai
outcome
pycparser
pydantic
pydantic_core
PySocks
python-dotenv
scipy
selenium
sniffio
sortedcontainers
sounddevice
tqdm
trio
trio-websocket
typing-inspection
typing_extensions
urllib3
websocket-client
wsproto
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Google-Meet-Bot
This project is a Python bot that automates the process of logging into Gmail, joining a Google Meet, recording the audio of the meeting, and then generating a summary, key points, action items, and sentiment analysis of the meeting.
## Recording video/audio/transcripts from video conferencing calls
If you’re looking to use this repo to retrieve video/audio streams or transcripts from meeting platforms like Zoom, Google Meet, Microsoft Teams, consider checking out [Recall.ai](https://www.recall.ai), an API for meeting recording.

## Prerequisites
- Python 3.8 or higher
- Chrome browser
- OpenAI API Key
- A Gmail account
- A Google Meet link
- ffmpeg/ffprobe installed and available on PATH (for audio trimming if needed)
## Installation
1. Clone the repository:
```bash
git clone https://github.com/dhruvldrp9/Google-Meet-Bot.git
cd Google-Meet-Bot
```
2. Create Python environment:
```bash
python3 -m venv env
```
3. Activate environment:
- For Unix/Linux/macOS:
```bash
source env/bin/activate
```
- For Windows:
```bash
env\Scripts\activate
```
4. Install package (local):
```bash
pip install -U build
pip install .
```
5. Configure environment variables:
- Create a `.env` file in the project root with the following content:
```
# Google Meet Credentials
EMAIL_ID=your_email@gmail.com
EMAIL_PASSWORD=your_password
# Meeting Configuration
MEET_LINK=https://meet.google.com/xxx-xxxx-xxx
RECORDING_DURATION=60
# Audio Configuration
SAMPLE_RATE=44100
MAX_AUDIO_SIZE_BYTES=20971520
# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key
GPT_MODEL=gpt-4
WHISPER_MODEL=whisper-1
```
6. CLI usage:
```bash
# After installation, a console script is available
google-meet-bot --meet-link "https://meet.google.com/xxx-xxxx-xxx" --duration 60
# Or run as a module
python -m google_meet_bot --meet-link "https://meet.google.com/xxx-xxxx-xxx" --duration 60
```
7. Programmatic usage:
```python
from google_meet_bot import JoinGoogleMeet, SpeechToText
bot = JoinGoogleMeet()
bot.Glogin()
bot.turnOffMicCam("https://meet.google.com/xxx-xxxx-xxx")
# ...
```
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| EMAIL_ID | Your Gmail address | - |
| EMAIL_PASSWORD | Your Gmail password | - |
| MEET_LINK | Google Meet URL to join | - |
| RECORDING_DURATION | Duration to record in seconds | 60 |
| SAMPLE_RATE | Audio recording sample rate | 44100 |
| MAX_AUDIO_SIZE_BYTES | Maximum audio file size in bytes | 20971520 (20MB) |
| OPENAI_API_KEY | Your OpenAI API key | - |
| GPT_MODEL | GPT model to use for analysis | gpt-4 |
| WHISPER_MODEL | Whisper model for transcription | whisper-1 |
## Features
- Automated Google Meet login and joining
- Audio recording of meetings
- Transcription using OpenAI's Whisper
- Meeting analysis including:
- Abstract summary
- Key points extraction
- Action items identification
- Sentiment analysis
- Automatic audio compression if size exceeds limit
- JSON output of meeting analysis
Raw data
{
"_id": null,
"home_page": null,
"name": "google-meet-bot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "audio, bot, google-meet, openai, selenium, transcription, whisper",
"author": "Dhruv Patel",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/86/b6/2fc408cd77e96f1fa02a20ba7a48097f1ed90391a387e9870e760d2749bb/google_meet_bot-0.0.1.tar.gz",
"platform": null,
"description": "# Google-Meet-Bot\nThis project is a Python bot that automates the process of logging into Gmail, joining a Google Meet, recording the audio of the meeting, and then generating a summary, key points, action items, and sentiment analysis of the meeting. \n\n\n## Recording video/audio/transcripts from video conferencing calls\nIf you\u2019re looking to use this repo to retrieve video/audio streams or transcripts from meeting platforms like Zoom, Google Meet, Microsoft Teams, consider checking out [Recall.ai](https://www.recall.ai), an API for meeting recording.\n\n\n## Prerequisites\n\n- Python 3.8 or higher\n- Chrome browser\n- OpenAI API Key\n- A Gmail account\n- A Google Meet link\n- ffmpeg/ffprobe installed and available on PATH (for audio trimming if needed)\n\n## Installation\n\n1. Clone the repository:\n ```bash\n git clone https://github.com/dhruvldrp9/Google-Meet-Bot.git\n cd Google-Meet-Bot\n ```\n\n2. Create Python environment:\n ```bash\n python3 -m venv env\n ```\n\n3. Activate environment:\n - For Unix/Linux/macOS:\n ```bash\n source env/bin/activate\n ```\n - For Windows:\n ```bash\n env\\Scripts\\activate\n ```\n\n4. Install package (local):\n ```bash\n pip install -U build\n pip install .\n ```\n\n5. Configure environment variables:\n - Create a `.env` file in the project root with the following content:\n ```\n # Google Meet Credentials\n EMAIL_ID=your_email@gmail.com\n EMAIL_PASSWORD=your_password\n\n # Meeting Configuration\n MEET_LINK=https://meet.google.com/xxx-xxxx-xxx\n RECORDING_DURATION=60\n\n # Audio Configuration\n SAMPLE_RATE=44100\n MAX_AUDIO_SIZE_BYTES=20971520\n\n # OpenAI Configuration\n OPENAI_API_KEY=your_openai_api_key\n GPT_MODEL=gpt-4\n WHISPER_MODEL=whisper-1\n ```\n\n6. CLI usage:\n ```bash\n # After installation, a console script is available\n google-meet-bot --meet-link \"https://meet.google.com/xxx-xxxx-xxx\" --duration 60\n\n # Or run as a module\n python -m google_meet_bot --meet-link \"https://meet.google.com/xxx-xxxx-xxx\" --duration 60\n ```\n\n7. Programmatic usage:\n ```python\n from google_meet_bot import JoinGoogleMeet, SpeechToText\n\n bot = JoinGoogleMeet()\n bot.Glogin()\n bot.turnOffMicCam(\"https://meet.google.com/xxx-xxxx-xxx\")\n # ...\n ```\n\n## Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| EMAIL_ID | Your Gmail address | - |\n| EMAIL_PASSWORD | Your Gmail password | - |\n| MEET_LINK | Google Meet URL to join | - |\n| RECORDING_DURATION | Duration to record in seconds | 60 |\n| SAMPLE_RATE | Audio recording sample rate | 44100 |\n| MAX_AUDIO_SIZE_BYTES | Maximum audio file size in bytes | 20971520 (20MB) |\n| OPENAI_API_KEY | Your OpenAI API key | - |\n| GPT_MODEL | GPT model to use for analysis | gpt-4 |\n| WHISPER_MODEL | Whisper model for transcription | whisper-1 |\n\n## Features\n\n- Automated Google Meet login and joining\n- Audio recording of meetings\n- Transcription using OpenAI's Whisper\n- Meeting analysis including:\n - Abstract summary\n - Key points extraction\n - Action items identification\n - Sentiment analysis\n- Automatic audio compression if size exceeds limit\n- JSON output of meeting analysis\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 Dhruv Patel\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.",
"summary": "Automate joining Google Meet, record audio, transcribe with Whisper, and summarize using GPT.",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/dhruvldrp9/Google-Meet-Bot",
"Issues": "https://github.com/dhruvldrp9/Google-Meet-Bot/issues",
"Repository": "https://github.com/dhruvldrp9/Google-Meet-Bot"
},
"split_keywords": [
"audio",
" bot",
" google-meet",
" openai",
" selenium",
" transcription",
" whisper"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c23d4c879d4cd304db7eced5ab45075a4a90423436a5431903eb230181ec19db",
"md5": "bf2a15fd87644afc22325f9a17a901e1",
"sha256": "4cc55f472b9fed8ad67bdcb861e313febaeb3ced8ffe425d25de2ea0923339fc"
},
"downloads": -1,
"filename": "google_meet_bot-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bf2a15fd87644afc22325f9a17a901e1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9940,
"upload_time": "2025-08-12T09:33:00",
"upload_time_iso_8601": "2025-08-12T09:33:00.141983Z",
"url": "https://files.pythonhosted.org/packages/c2/3d/4c879d4cd304db7eced5ab45075a4a90423436a5431903eb230181ec19db/google_meet_bot-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "86b62fc408cd77e96f1fa02a20ba7a48097f1ed90391a387e9870e760d2749bb",
"md5": "7cab686f176c3c00fc7b06e9cb77aacd",
"sha256": "ce20835349c81263c9ba3436cec7159562feeae26ace52fe74d1a226ccbb2ca5"
},
"downloads": -1,
"filename": "google_meet_bot-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "7cab686f176c3c00fc7b06e9cb77aacd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 7363,
"upload_time": "2025-08-12T09:33:01",
"upload_time_iso_8601": "2025-08-12T09:33:01.792606Z",
"url": "https://files.pythonhosted.org/packages/86/b6/2fc408cd77e96f1fa02a20ba7a48097f1ed90391a387e9870e760d2749bb/google_meet_bot-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-12 09:33:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dhruvldrp9",
"github_project": "Google-Meet-Bot",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"4.10.0"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"25.3.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.8.3"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "distro",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "h11",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "httpcore",
"specs": [
[
"==",
"1.0.9"
]
]
},
{
"name": "httpx",
"specs": [
[
"==",
"0.28.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "jiter",
"specs": [
[
"==",
"0.10.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"2.3.2"
]
]
},
{
"name": "openai",
"specs": [
[
"==",
"1.99.9"
]
]
},
{
"name": "outcome",
"specs": [
[
"==",
"1.3.0.post0"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.11.7"
]
]
},
{
"name": "pydantic_core",
"specs": [
[
"==",
"2.33.2"
]
]
},
{
"name": "PySocks",
"specs": [
[
"==",
"1.7.1"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.16.1"
]
]
},
{
"name": "selenium",
"specs": [
[
"==",
"4.34.2"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "sortedcontainers",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "sounddevice",
"specs": [
[
"==",
"0.5.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.67.1"
]
]
},
{
"name": "trio",
"specs": [
[
"==",
"0.30.0"
]
]
},
{
"name": "trio-websocket",
"specs": [
[
"==",
"0.12.2"
]
]
},
{
"name": "typing-inspection",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.14.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "websocket-client",
"specs": [
[
"==",
"1.8.0"
]
]
},
{
"name": "wsproto",
"specs": [
[
"==",
"1.2.0"
]
]
}
],
"lcname": "google-meet-bot"
}