Subtitle Generator — Open Source Video Captioning

January 18, 2026

Ever tried adding subtitles to a video manually? It's tedious. That's why I built Subtitle Generator—an AI-powered tool that leverages Whisper's speech-to-text through the blazing-fast whisper.cpp backend.

✨ Key Features

  • 🎯 7 Output Formats — VTT, SRT, ASS, TTML, LRC, JSON, TXT
  • 🚀 Fast Processing — Powered by whisper.cpp for high-performance inference
  • 📦 Batch Processing — Process folders of videos with resume capability
  • 🔄 Video Embedding — Embed subtitles directly into videos with --merge
  • 🌍 Multilingual — Support for multiple languages
  • 🔀 Async API — Concurrent processing for Python applications

🛠️ Installation

pip install subtitle-generator

Prerequisite: FFmpeg required — brew install ffmpeg (macOS) or sudo apt install ffmpeg (Ubuntu)

📖 Quick Start

Generate subtitles (VTT format):

subtitle video.mp4

Generate SRT format:

subtitle video.mp4 --format srt

Use a larger model for better accuracy:

subtitle video.mp4 --model large

Generate and embed into video:

subtitle video.mp4 --merge

Batch process a folder:

subtitle batch --input-dir ./videos --output ./subtitles

Available Models

Model Size Speed Best For
tiny ~75MB ⚡⚡⚡⚡ Quick previews
base ~140MB ⚡⚡⚡ General use (default)
small ~460MB ⚡⚡ Quality output
medium ~1.5GB Professional work
large ~3GB 🐢 Maximum accuracy

Tip: Use .en models (e.g., base.en) for English-only content—faster and more accurate.

CLI Options

Option Description
--model, -m Model: tiny, base, small, medium, large
--format, -f Format: vtt, srt, txt, json, lrc, ass, ttml
--merge Embed subtitles into video
--threads, -t Processing threads (default: 4)
--resume Resume interrupted batch

🔗 Links

Status: 🚀 v2.0.2, MIT Licensed, actively maintained

If you find it useful, a star on GitHub would be appreciated! ⭐

For support: vedgupta@protonmail.com