GitPedia

LLM Minutes of Meeting

A tool that transforms audio or video files into text transcripts and generates concise meeting minutes. Stay organized and efficient in your meetings, and get ready for Phase 2 where we'll be open for contributions to enable real-time meeting transcription!

From inboxpraveen·Updated June 3, 2026·View on GitHub·

If you’re looking for a meeting recording API, consider checking out [Recall.ai](https://www.recall.ai), an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. The project is written primarily in HTML, distributed under the MIT License license, first published in 2023. Key topics include: huggingface, huggingface-transformers, llm, llm-inference, meeting-minutes.

MoM AI — AI-Powered Minutes of Meeting


Recall.ai - API for meeting recording

If you’re looking for a meeting recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.

Sponsored by Recall.ai — The unified API for meeting bots.


A clean, modern web application that transcribes meeting recordings and generates structured Minutes of Meeting using your preferred AI providers. Upload once, get professional meeting minutes automatically.


Features

  • AI Transcription — Deepgram, AssemblyAI, Sarvam AI, or ElevenLabs
  • Smart Summarization — Any OpenAI-compatible LLM (OpenAI, OpenRouter, Groq, Together, Azure, Ollama, etc.)
  • Background Processing — Celery + Redis; upload and come back when it's done
  • Auto Cleanup — Files auto-deleted after a configurable number of days
  • Two Roles — Admin (full config access) + User (upload & view only)
  • Modern UI — Light-themed, fully responsive, smooth animations
  • Docker-ready — One command to spin up everything

Screenshot

Home Page

Home Page

Home Page

Quick Start

1. Configure environment

bash
cp .env.example .env # Edit .env — set your API keys
bash
docker compose up --build

App is available at http://localhost:5000

2b. Local development

Prerequisites: Python 3.12+, Redis, ffmpeg

bash
# Install dependencies pip install -r requirements.txt # Start Redis (one terminal) redis-server # Start Celery worker (another terminal) celery -A celery_worker:celery worker -l info # Start Celery beat for periodic cleanup (another terminal) celery -A celery_worker:celery beat -l info # Start Flask app python run.py

Default Login

FieldValue
Usernameadmin
Passwordadmin@123

Change these in .env before deploying.


Admin Panel

Log in as admin and navigate to Settings to configure:

TabWhat you can set
LLM ProviderBase URL, API key, model name
Speech ProviderActive provider, API keys for all 4 providers
StorageRetention days (how long files are kept)

Navigate to Users to create/manage user accounts.


LLM Provider Examples

The app uses the OpenAI client format — works with any compatible endpoint:

ProviderLLM_BASE_URLExample model
OpenAIhttps://api.openai.com/v1gpt-4o
OpenRouterhttps://openrouter.ai/api/v1anthropic/claude-opus-4
Groqhttps://api.groq.com/openai/v1llama-3.3-70b-versatile
Together AIhttps://api.together.xyz/v1meta-llama/Llama-3-70b-chat-hf
Ollama (local)http://localhost:11434/v1llama3.2

Speech Providers

All four providers produce speaker-labelled transcripts when diarization is available (e.g. [Speaker 0]: …, [speaker_0]: …). This gives the LLM enough context to correctly attribute decisions and action items in the Minutes of Meeting.

ProviderModelKey capabilities
DeepgramNova-3Fastest; word-level diarization via utterances; paragraph-formatted output
AssemblyAIBest (auto)High accuracy; speaker diarization
Sarvam AIsaarika:v2.5Batch Job API — no duration limit; best for Indian languages + English; diarization (beta)
ElevenLabsScribe v2Multichannel support (stereo → per-channel speakers); single-channel diarization

Sarvam note: The direct /speech-to-text endpoint only accepts ≤ 30 seconds of audio. The provider now uses the full Batch Job pipeline (/speech-to-text/job/v1) which handles meeting recordings of any length.


Project Structure

├── app/
│   ├── __init__.py          # App factory + seeding
│   ├── config.py            # All configuration
│   ├── extensions.py        # db, login_manager, celery
│   ├── models.py            # User, Meeting, SystemConfig
│   ├── auth/                # Login / logout
│   ├── dashboard/           # Dashboard home
│   ├── meetings/            # Upload, list, detail, delete
│   ├── admin/               # Settings + user management
│   ├── api/                 # REST endpoints (status polling)
│   ├── tasks/               # Celery tasks (process + cleanup)
│   ├── providers/
│   │   ├── llm/             # OpenAI-compatible LLM client
│   │   └── speech/          # Deepgram, AssemblyAI, Sarvam, ElevenLabs
│   ├── utils/               # ffmpeg audio conversion
│   ├── static/              # CSS + JS
│   └── templates/           # Jinja2 HTML templates
├── celery_worker.py         # Celery entry point
├── run.py                   # Flask entry point
├── Dockerfile
├── docker-compose.yml
└── .env.example

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from inboxpraveen/LLM-Minutes-of-Meeting via the GitHub API.Last fetched: 6/20/2026