Skip to content

About

Offline video subtitle generation: Whisper transcription, translation, speaker diarization, and hardsub/softsub burning - with Web, Desktop, and Terminal UIs.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Subtitle Burner logo

Subtitle Burner

Transcribe, translate, and burn subtitles into any video — fully offline, GPU-accelerated.

Latest release License: MIT Platforms


What it does

Point it at a video, and it will:

  1. Transcribe the speech (Whisper, via faster-whisper) - with automatic NVIDIA GPU acceleration and CPU fallback.
  2. Optionally translate the subtitles into another language (Argos Translate), with per-segment language detection so mixed-language content (e.g. a podcast that switches languages mid-recording) is handled correctly.
  3. Optionally separate speakers (pyannote.audio), labeling the transcript "Speaker 1", "Speaker 2", etc. - renameable afterwards.
  4. Deliver the result either as hardsub (burned directly into the video, works in every player) or softsub (a selectable subtitle track, fast lossless mux, no re-encode).

Everything runs locally - no cloud APIs, no data leaves your machine.

Interfaces

The same backend is usable three ways:

  • Web UI - a polished Next.js frontend (upload, live progress, log viewer, settings).
  • Desktop GUI - the same web UI in a native window (via pywebview), no browser needed.
  • Terminal UI - a full Textual TUI for headless/server use, including a built-in file browser.

You can also cancel an in-progress job at any point, and unload models on demand to free GPU/RAM for other apps.

Installation

Windows

Download SubtitleBurnerSetup.exe from the latest release and run it.

  • You choose the install directory (nothing is forced into Program Files).
  • The installer bundles its own portable Python, Node.js, and ffmpeg - no prerequisites needed on a clean machine.
  • First launch downloads the heavier ML dependencies (PyTorch, speech/translation models - a few GB) and needs an internet connection; this is one-time.

Linux

A .deb package is planned but not published yet. In the meantime, run from source:

git clone https://github.com/HACK3RRABBIT/subtitle-burner.git
cd subtitle-burner
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd web && npm install && npm run build && cd ..
python app.py          # backend, then in another terminal:
cd web && npm start    # frontend

(See installer/build_deb.sh / installer/debian/ if you want to build the .deb yourself on a real Linux machine - it isn't tested yet, see installer/README.md.)

Architecture

The backend (subburn/) is organized in layers, with ASR/translation/diarization each behind a small plugin registry - adding a new engine is a new file plus one registration call, no changes to the core pipeline:

subburn/
  core/        job state, cancellation, pipeline orchestration
  engines/     ASREngine / TranslationEngine / DiarizationEngine base classes + registry
               (faster-whisper, Argos Translate, pyannote.audio implementations)
  models/      resident-model caching (used by engines, and the model-management API)
  subtitles/   SRT + transcript generation
  media/       ffmpeg (extract, burn-in, softsub mux)
  web/         FastAPI routers (auth, jobs, models, settings, logs)

app.py, launcher.py, gui.py, and tui.py are thin entry points on top of this.

Tech stack

FastAPI · Next.js · faster-whisper · Argos Translate · pyannote.audio · pywebview · Textual · ffmpeg

License

MIT. FFmpeg is bundled with the Windows installer under its own GPL license (invoked as a separate subprocess, not linked into anything here) - see installer/README.md.

About

Offline video subtitle generation: Whisper transcription, translation, speaker diarization, and hardsub/softsub burning - with Web, Desktop, and Terminal UIs.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages