google-meet-bot


Namegoogle-meet-bot JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryAutomate joining Google Meet, record audio, transcribe with Whisper, and summarize using GPT.
upload_time2025-08-12 09:33:01
maintainerNone
docs_urlNone
authorDhruv Patel
requires_python>=3.8
licenseMIT 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.
![Alt Text](https://github.com/dhruvldrp9/Google-Meet-Bot/blob/main/GoogleMeetBot.jpeg)

## 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![Alt Text](https://github.com/dhruvldrp9/Google-Meet-Bot/blob/main/GoogleMeetBot.jpeg)\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"
}
        
Elapsed time: 0.93202s