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