MeetTrack is a full-stack, AI-powered meeting assistant designed to securely transcribe audio, diarize speakers (who said what when), extract actionable tasks, and automatically email participants. It features a custom Python Playwright bot that can automatically join live Google Meet sessions and record them for you!
- Live Meeting Bot: A Python/Playwright headless bot that joins Google Meet, waits for admission, and records the meeting audio locally using
ffmpegandpulseaudio. - Automated Scheduling: Connect to your Google Calendar to fetch upcoming meetings, or manually schedule the bot. Celery Beat will automatically dispatch the bot exactly 2 minutes before the meeting starts.
- AI Transcription & Diarization: High-speed speech-to-text using local
faster-whisperand speaker identification usingpyannote-audio, strictly constrained to run on a 4GB VRAM GPU without crashing. - Intelligent Task Extraction: Uses the Groq API (LLaMA-3) to read the transcript and extract action items, owners, and accurate deadlines.
- Participant Mapping & Emails: Upload a CSV of participants, or pull them from Google Calendar. The system automatically sends notification emails with assigned tasks.
- Queue System: A robust background worker queue (Celery + Redis) that restricts processing to one heavy AI task at a time (
--concurrency=1) to prevent GPU Out-of-Memory (OOM) errors.
- Frontend: React.js, Vite, Lucide Icons (Glassmorphic modern UI)
- Backend API: FastAPI (Python), SQLAlchemy, PostgreSQL
- Background Tasks: Celery, Celery Beat, Redis
- Live Bot: Python, Playwright, FFmpeg, PulseAudio
- AI Models: Faster-Whisper, PyAnnote, Groq API
- OS: Linux (Ubuntu/Debian recommended for PulseAudio and ffmpeg support)
- GPU: NVIDIA GPU (e.g., GTX 1050 Ti) with at least 4GB VRAM
- Dependencies: Node.js (v18+), Conda, FFmpeg, PulseAudio (
sudo apt install ffmpeg pulseaudio)
Create the Conda environment and install all Python dependencies:
conda create -n meettrack python=3.11 -y
conda activate meettrack
# Install dependencies using the requirements file
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121
# Install Playwright browsers (Required for the bot)
playwright install chromiumInstall Frontend dependencies:
cd frontend
npm install
cd ..Create a .env file in the root directory:
# Database
DATABASE_URL=postgresql://<username>@localhost/meettrack
# AI Tokens
HUGGINGFACE_TOKEN=hf_your_token_here
GROQ_API_KEY=gsk_your_token_here
# Email Configuration (for sending task notifications)
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
EMAIL_SENDER=[email protected]
EMAIL_APP_PASSWORD=your_app_password
# Google Calendar OAuth (Optional)
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secretNote: PyAnnote relies on a gated model. You MUST go to pyannote/speaker-diarization-community-1 and agree to their user conditions before the HuggingFace token will work.
We run PostgreSQL and Redis directly from Conda for isolation:
conda install -c conda-forge postgresql redis -y
redis-server --daemonize yes
pg_ctl -D $CONDA_PREFIX/var/postgres -l $CONDA_PREFIX/var/postgres/server.log startInitialize the Postgres tables:
alembic upgrade headYou will need three terminal windows to run the full stack:
Terminal 1 (React Frontend):
cd frontend
npm run devTerminal 2 (FastAPI Server):
conda activate meettrack
uvicorn app.main:app --reloadTerminal 3 (Celery Worker + Scheduler):
conda activate meettrack
# The -B flag is CRITICAL! It enables the Celery Beat scheduler for automated bot dispatches.
celery -A app.worker worker -B --loglevel=info --concurrency=1Critical:
--concurrency=1is required to ensure only 1 audio file is processed at a time, protecting the 4GB VRAM limit.
Open your browser to http://localhost:5173.
- Upload File: Drag and drop an existing
.mp3or.wavfile to process it immediately. - Send Live Bot: Paste a Google Meet link and schedule a time. The bot will automatically launch in the background 2 minutes before the meeting, wait for you to click "Ask to Join", and then silently record the audio!
If you prefer to run the backend and worker in Docker, you can use docker-compose. Ensure you have Docker and NVIDIA Container Toolkit installed (you can use scripts/install_docker.sh to install these dependencies on Ubuntu).
# Build and start the services (Postgres, Redis, FastAPI, Celery Worker)
docker-compose up -d --build
# The frontend still needs to be run separately
cd frontend
npm run devNote: The worker container requires an NVIDIA GPU for AI models. Ensure
nvidia-container-toolkitis installed on your host system.