subgen
A self-hosted subtitle generator that runs Whisper locally on CPU or NVIDIA GPU and integrates with Bazarr, Plex, Jellyfin, Emby and Tautulli.
subgen creates subtitles from audio and video for personal media libraries. It's useful for films and shows that lack usable subtitles, with automatic generation tied to your media server.
- Media-server automation: Bazarr can use subgen as a Whisper provider, while Plex, Jellyfin, Emby and Tautulli can trigger generation when media is added or played.
- Transcription and translation: Generate SRT subtitles or LRC files from speech in its original language, or translate foreign-language audio into English.
- Subtitle timing: When it can access the source video, subgen compensates for audio stream start offsets that would otherwise make subtitles appear too early.
- Compatible audio API: Open WebUI, compatible Obsidian plugins and other clients that use the OpenAI Whisper API can request transcription or English translation, with text, subtitle or timestamped responses, including word-level timing.
Speech recognition runs locally through faster-whisper and stable-ts, using a CPU or an NVIDIA GPU with CUDA. subgen runs in Docker or as a standalone Python application and is open source under the MIT license. Its audio API uses the configured Whisper model rather than the model requested by the client.