2.5 KiB
Vid-Repair 🎬🛠️
Vid-Repair is a cross‑platform CLI that scans video files for container/stream/decode problems and applies safe repairs using your system ffmpeg/ffprobe.
Quick Start 🚀
Requirements ✅
ffmpegandffprobeavailable on PATH
Install 🧰
cargo build --release
Common commands 💻
# Scan files or folders
vid-repair scan /path/to/videos
# Watch a folder and scan new/changed files once they finish writing
vid-repair scan --watch /path/to/videos
# Fix (safe policy, in-place)
vid-repair fix /path/to/videos
# Fix with aggressive policy (allows re-encode)
vid-repair fix --policy aggressive /path/to/videos
# JSON output (for scripts)
vid-repair scan --json /path/to/videos
Scan depth 🔎
# Quick scan (faster, less thorough)
vid-repair scan --scan-depth quick /path/to/videos
# Standard scan
vid-repair scan --scan-depth standard /path/to/videos
# Deep scan (default, full decode)
vid-repair scan --scan-depth deep /path/to/videos
Recursive vs non‑recursive 🧭
# Disable recursive scanning
vid-repair scan --no-recursive /path/to/videos
Exit codes 🧾
0no issues1issues found2fix failed3fatal error
Config ⚙️
On first run, a commented TOML config is created in the XDG config directory:
- Linux:
~/.config/vid-repair/config.toml - macOS:
~/Library/Application Support/vid-repair/config.toml - Windows:
%APPDATA%/vid-repair/config.toml
You can edit this file to set defaults like scan depth, include/exclude patterns, and watch behavior. CLI flags always override config values.
AI Disclaimer 🤖
This software was written with assistance from OpenAI Codex.
Developer Guide 🛠️
This section is for contributors and anyone building on the project.
Project layout 🧱
vid-repair/– CLI binaryvid-repair-core/– core library (scan, rules, fix, report, watch)rulesets/– modular rule packs (TOML)scripts/– helper scripts (fixtures, checks)
Rulesets 🧩
Rules are data‑driven and split by domain in rulesets/*.toml.
Before shipping changes:
vid-repair rules lint
Fixtures 🧪
Generate fixtures locally (git‑ignored):
scripts/generate_fixtures.sh
Use fixtures to validate scan logic and rule coverage. Add new fixtures for real‑world edge cases (truncated files, corrupted NAL units, etc.).
Tests ✅
scripts/check.sh
This runs the full test suite and ruleset lint.