Verbatim ghcr.io/wastedpadre/verbatim:latest https://ghcr.io bridge bash false https://github.com/wastedpadre/verbatim/issues https://github.com/wastedpadre/verbatim https://raw.githubusercontent.com/wastedpadre/verbatim/main/frontend/public/icon-192.png https://raw.githubusercontent.com/wastedpadre/verbatim/main/templates/verbatim.xml Generates English closed captions from the English dub audio track of your own media. Dubtitles are hard to find because almost every "English" subtitle file is a translation of the Japanese audio - the dub script is a different adaptation and rarely matches what is actually spoken. Verbatim transcribes the dub itself using faster-whisper on your GPU. Requires the Nvidia Driver plugin from Community Applications and a CUDA capable card with at least 6 GB of VRAM. The transcription model holds roughly 4.7 GB while a job runs, so watch for contention if the same card also does Plex or Jellyfin hardware transcoding. Everything runs locally. An optional pass can send cue text to the Gemini API to repair misheard words; it is disabled by default and needs your own API key. ### What it does Point it at a folder, tick episodes, and it writes a sidecar `.srt` next to each video. Jellyfin selects it automatically. Plex detects it but does not switch to it. During playback, choose "English (SRT External)" from the subtitle menu, or set it as the default for the series in Plex's settings. ### How it gets usable output - **Track selection.** Dual-audio releases carry several audio and subtitle streams. Streams are scored on language tags, titles and channel count, and the UI shows which one was chosen. - **Glossary priming.** Character names and invented terminology are mined from the embedded subtitle track and used to bias the decoder, then to correct near-misses afterwards. - **Dialogue-forward audio.** In a 5.1 mix the dialogue sits in the centre channel. A flat downmix buries it under the score, so the centre channel is isolated before transcription. - **Readable cues.** Output is reshaped to broadcast captioning rules: 42 characters per line, two lines, 20 characters per second, no overlaps. ### Also included Batch queueing with a pre-flight that skips episodes already captioned, releases that ship their own dubtitle track, and files with no English audio. A playback preview that plays cues on their real timestamps, a cue editor with validation, and a scoring tool for measuring output against a reference track. ### Requirements Nvidia Driver plugin, and `--runtime=nvidia` with `NVIDIA_DRIVER_CAPABILITIES=compute,utility`. Without the compute capability the container starts, sees no CUDA device, and silently falls back to CPU at roughly ten times the runtime. MediaApp:Video Tools:Utilities http://[IP]:[PORT:8080]/ --runtime=nvidia Nvidia Driver plugin, and a CUDA GPU with 6 GB or more of VRAM. 8080 /mnt/user/media /mnt/user/appdata/verbatim all compute,utility large-v3 float16 cuda 1 /media .en.dubtitles.srt gemini 0.15