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

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

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

CLI Options

OptionDescription
--model, -mModel: tiny, base, small, medium, large
--format, -fFormat: vtt, srt, txt, json, lrc, ass, ttml
--mergeEmbed subtitles into video
--threads, -tProcessing threads (default: 4)
--resumeResume interrupted batch

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