How kagerun/predub works
predub is a local video dubbing application: a CLI or browser player requests a target-language dub, the service fetches/decodes media and runs speech recognition, optional speaker attribution, translation and voice synthesis, then buffers timed audio for playback or writes dubbed output. The graph preserves the documented browser-extension, language/voice and vocal-separation capabilities. Some wiring is omitted because the supplied source excerpts are partial; paths for documented but unsampled subsystems use their exact tree entries.
Main entry points: stream.py Lookahead scheduler · cli.py CLI workflows · content.js Extension controls · server.py Player HTTP server
Components 22
User entry points
- CLI workflows
predub/cli.py - Extension controls
extension/content.js - Language settings
extension/popup.js
Media acquisition
- Media fetching
predub/fetch.py - Media decode encode
predub/env.py
Dub pipeline
- Lookahead scheduler
predub/stream.py - Speech recognition
predub/asr.py - Vocal separation
predub/separate.py - Speaker diarisation
predub/diarize.py - Text translation
predub/translate.py - Timed dub rendering
predub/dub.py - Speech synthesis
predub/tts.py - Voice cloning
predub/xtts.py
Playback and output
- Player HTTP server
predub/server.py - Buffered web player
predub/web/player.html
Local runtime services
- Session daemon
predub/daemon.py - Live settings
predub/settings.py - Language catalog
predub/langs.py
Other components
- Viewer
- Browser video page
- Neural voice models
- Video source
Connections 29
- Viewer → CLI workflows: runs workflow
- CLI workflows → Media decode encode: decodes media
- CLI workflows → Lookahead scheduler: starts pipeline
- CLI workflows → Player HTTP server: starts player
- Video source → Media fetching: provides URL media
- Session daemon → Media fetching: fetches source
- Media fetching → Media decode encode: provides media
- Lookahead scheduler → Media decode encode: reads audio
- Lookahead scheduler → Speech recognition: transcribes audio
- Lookahead scheduler → Vocal separation: separates vocals
- Lookahead scheduler → Speaker diarisation: assigns speakers
- Lookahead scheduler → Text translation: translates text
- Lookahead scheduler → Timed dub rendering: renders timed lines
- Timed dub rendering → Speech synthesis: synthesizes speech
- Timed dub rendering → Voice cloning: clones speaker voice
- Speech synthesis → Neural voice models: loads voice
- Lookahead scheduler → Live settings: reads live options
- CLI workflows → Language catalog: lists languages
- Viewer → Browser video page: opens video
- Browser video page → Extension controls: hosts controls
- Language settings → Live settings: stores preferences
- Extension controls → Session daemon: creates session
- Session daemon → Lookahead scheduler: starts session pipeline
- Extension controls → Session daemon: polls session
- Extension controls → Buffered web player: schedules audio
- Player HTTP server → Lookahead scheduler: reads chunks
- Player HTTP server → Buffered web player: serves player
- Lookahead scheduler → Player HTTP server: publishes chunks
- CLI workflows → Media decode encode: writes dubbed output