Favicon of subgen

subgen

Self-hosted subtitle generator runs Whisper locally on CPU or NVIDIA GPU and connects to Bazarr, Plex, Jellyfin, Emby and Tautulli. MIT licensed.

subgen generates subtitles on your own hardware for personal media libraries, including films and shows that don't have usable subtitles available. It's an open source, MIT-licensed Python service that runs in Docker or as a standalone application. Speech recognition runs locally using Whisper models through faster-whisper and stable-ts, with support for CPU processing and NVIDIA GPUs through CUDA.

Its main appeal is media-server automation. Bazarr can use it as a Whisper provider, while Plex, Jellyfin, Emby and Tautulli can trigger subtitle generation when media arrives or playback starts. It can also scan existing libraries and watch folders for added files. Plex users can queue upcoming episodes, the rest of a season or a whole series, and subgen can refresh Plex and Jellyfin metadata so generated subtitles appear for playback.

For multilingual libraries, subgen can transcribe speech in its original language or translate it into English. It produces SRT subtitles and can create LRC files for audio. Supported models include large-v3 and large-v3-turbo; the turbo model handles transcription only. Language preferences help select an audio track, and skip rules avoid processing files that already have suitable subtitles. When it can access the source video, subgen compensates for audio start offsets that would otherwise put subtitles out of sync.

Beyond media libraries, its OpenAI-compatible audio API lets Open WebUI and compatible Obsidian plugins use it for transcription and English translation. Responses can include plain text, subtitle formats or timestamped segments with word-level timing.

Similar to subgen