Skip to content

Command line

Headless entry points for other Voxprint programs, scripts and agents. The installed command is voxprint-movie-dubber-cli. It is the same entry point as python main.py and python -m dubber.cli. The window is not opened. Nothing waits for a prompt.

On an installed copy, voxprint-movie-dubber-cli is the console launcher. voxprint-movie-dubber opens the window.

The JSON object always has ok, exit_code, command, dry_run, version, label, build and codename. label is the same line as About. A failure also has error. A failed job also has debug with the traceback.

voxprint-movie-dubber-cli version
voxprint-movie-dubber-cli diagnose
voxprint-movie-dubber-cli fetch-models [--models KEY,KEY]
voxprint-movie-dubber-cli run-project PATH [--languages SRC,TGT] [--stages NAME,NAME]
voxprint-movie-dubber-cli info PATH
voxprint-movie-dubber-cli selftest
voxprint-movie-dubber-cli --dry-run --json

Global flags

Flag Meaning
--json Print one JSON object on stdout and exit. Logs go to stderr.
--dry-run Discovery only. Implies --json. No model is loaded and nothing is downloaded. Works with no NVIDIA GPU: the JSON reports the GPU and the process exits 3. VOXPRINT_SKIP_GPU_GATE does not change --dry-run.
--help, -h Print this command list and the exit codes, then exit 0. With --json or --dry-run, that list is one JSON object.

Flag forms

Flag Meaning
--version Same as the version command.
--diagnose-cli Same as the diagnose command.
--fetch-models Same as the fetch-models command.
--run-project PATH Same as run-project PATH.
--project-info PATH Same as info PATH.

Diagnostic flags

Flag Meaning
--out FILE Write the diagnostics report to this file.
--quick Shorter diagnostics: one TTS phrase and the SDPA modes only.
--no-download Do not download models during diagnostics.
--target LANG Diagnostics dub language: ru, en, or de. Default: ru.
--skip LIST Skip these diagnostic groups: system, gpu, network, models, tts, stages.
--tts-model KEY TTS model key: tts_1_7b or tts_0_6b.
--tts-modes LIST Comma-separated TTS modes. Known: standard_sdpa, standard_fa2, graphs_sdpa, graphs_fa2.
--cpu-tts Run the diagnostics TTS check on the CPU.
--cpu-sep Run the diagnostics separation check on the CPU.
--clip FILE Use this clip instead of the bundled diagnostics clip.
--asr-repo REPO Hugging Face repo for the speech-recognition model.
--models KEY,KEY Model keys to download. Unknown keys exit 2.
--report FILE Write the fetch-models log to this file.
--languages SRC,TGT Source and target, for example en,ru. Source: auto, en, ru, de. Target: en, ru, de.
--source-lang LANG Source language. Default: auto. Kept when the project already has one.
--target-lang LANG Target language. Default: ru.
--stages NAME,NAME Run from the start of the pipeline through the last named stage. Unknown names exit 2.

Exit codes

Code Name When
0 ok The command finished.
2 usage Unknown command or flag, or a missing value, language, stage, or model key.
3 gpu No RTX 40-series GPU (compute capability 8.9 or newer), or the NVIDIA driver is older than branch 600.
4 models A model this command needs is not on disk. Dry-run does not download it.
5 input The video, project folder, or .vxdub file is missing or cannot be read.
6 job The dubbing job failed.
7 cancelled The job was cancelled.

Code 1 is not used. When several of these apply, usage is reported first, then a missing or unreadable input, then an unsupported GPU, then missing models, then a job failure, then cancellation.

version

Prints the version line (build and codename included). Exit 0. With --dry-run, the same discovery object as a bare --dry-run is added, and an unsupported GPU exits 3.

voxprint-movie-dubber-cli version

diagnose

Runs the same checks as --diagnose-cli. --dry-run lists the check groups and does not run them. The diagnostic flags still apply. A real run on a machine below the GPU minimum exits 3 unless VOXPRINT_SKIP_GPU_GATE is set. --dry-run still exits 3 on that machine.

voxprint-movie-dubber-cli diagnose

fetch-models

Runs voxprint-mdl enqueue --app movie-dubber and then waits for that queue. With --models, those keys are passed as --model (diarization and embedding are optional and are fetched only when named). An unknown key is exit 2. A model that is still missing is exit 4. --dry-run reports which of the requested keys are already on disk and does not download or enqueue. The real fetch does not refuse to start because of the GPU. No Hugging Face token is used.

voxprint-movie-dubber-cli fetch-models

run-project

PATH is a video (.mkv, .mp4, .avi, .mov, .webm, .m4v, .ts, .m2ts), a .vxdub project, or a project folder that already contains project.json. Languages default to auto to ru. Values already stored in a project or a .vxdub file are kept when the flags are omitted. --dry-run describes the file, the languages, the stages and the models that would be needed. It does not create a project folder, load a model, or download. A missing file is exit 5. An unsupported GPU is exit 3. Missing models, once the GPU is acceptable, are exit 4. A real run exits 3 on an unsupported GPU (unless VOXPRINT_SKIP_GPU_GATE is set), 6 when the dub fails, and 7 when it is cancelled.

voxprint-movie-dubber-cli run-project PATH

selftest

Checks the shared Python 3.14 runtime, the torch 2.11.0, torchaudio and torchcodec wheels, the CTranslate2 CUDA 12 libraries, ffmpeg and the models the default pipeline needs. A missing or broken piece is repaired. Progress is one JSON object per line on stderr. The result includes outcome: ok when nothing changed, repair when a piece was restored. An NVIDIA driver older than branch 600, or a GPU that is not an RTX 40-series card or newer, exits 3. The error names https://www.nvidia.com/Download/index.aspx. --dry-run checks and does not repair.

voxprint-movie-dubber-cli selftest PATH

info (project-info)

Prints the kind, the languages and the line count. A video that is not yet a project is reported as video. A missing file is exit 5. This command does not need a GPU. --dry-run adds the discovery object and then uses the same GPU exit code as the other dry-runs.

voxprint-movie-dubber-cli info
voxprint-movie-dubber-cli project-info

--dry-run

voxprint-movie-dubber-cli --dry-run --json

With no other command, --dry-run is discovery only:

  • label, build, codename from BUILD.json (and from build_info.json when the installer stamped one)
  • runtime: Python version, platform, and the installed PyTorch version (null when PyTorch is not installed)
  • gpu: whether the card meets the minimum, the reason when it does not (no_cuda, low_compute or old_driver), VRAM, and the VRAM tier (16gb or 24gb; 16gb is also the tier when the size is unknown)
  • models: every known model key and whether its files are already on disk
  • would_run.stages: the dub stages that would run if a project were given

No model is loaded. Nothing is downloaded. On a GPU-less machine the process exits 3 and gpu.ok is false.

Window and installer

Open the window, or run an installer helper. These forms do not use the headless exit codes. The installed window launcher is voxprint-movie-dubber.

The desktop window returns 3 (gpu) when the graphics card is not an RTX 40-series or newer, or the NVIDIA driver is older than branch 600. --selftest uses the same codes. A repaired component is exit 0 with outcome repair.

Flag Meaning
--diagnose Open the window and run the diagnostics at once. The report goes to the Desktop.
--worker NAME ARGS Internal. Run one heavy step in its own process. NAME is the worker; ARGS is its JSON file.
--selftest Check and repair shared components, then open the window briefly and exit. With --json, print the self-test result and do not open the window.
--register-models-user Installer. Add this program to the shared models folder's .users.json.
--unregister-models-user Uninstaller. Remove this program from .users.json. Exit 0 unless the write failed.
--register-runtime-user Installer. Add this program's reference to the shared runtime in shared/manifest.json.
--unregister-runtime-user Uninstaller. Drop this program's runtime reference. Exit 0 unless the write failed.
--release-shared Uninstaller. Drop this program's references in shared/manifest.json and delete directories no app still uses.
--sync-suite-settings Installer. Write the shared suite.json (models folder, UI language) when it has none yet.
--out FILE With --release-shared, write pending paths, one per line. With an unregister command, write '\n'.

Positional PROJECT.vxdub: Open this project file in the window.