yt-uniquifier¶
A production-grade re-encoder for your own owned/licensed video
content. Wraps ffmpeg and applies controlled micro-transforms —
crop + rescale, color jitter, noise, rotation, frame-blend,
pitch/tempo, EQ, EBU R128 loudnorm — so a re-upload of your work
is a fresh, properly encoded artifact rather than a bit-identical
copy of an earlier render.
Scope
yt-uniquifier is for legitimate use only — re-uploading
your own content, fair-use derivatives, re-cuts. The transforms
are not designed to defeat Content ID, and the documentation
will not help you do so. Preserve that framing in any
contribution.
Why use it¶
- One filter chain per segment. No bgr24 round-trip through
Python stdin —
core/pipeline.pybuilds a single-filter_complexper re-encode. - Crash-resumable at segment granularity. A crash during a multi-hour run resumes at the segment boundary that was in progress, not from scratch.
- Multi-vendor encoder real-probe. NVENC, QSV, AMF,
VideoToolbox, x264, x265 are each test-fired against a
lavfinull source and cached — available on the box and works are treated as different things. - HDR-aware micro-transforms. Color jitter happens inside a zscale linear-light wrap; tonemap_sdr is gated on the source actually being HDR.
- Distributed batch over a shared filesystem. No Redis, no
Postgres — atomic
os.renameacross workers. - Headless web UI + Docker image. Drop the container on a NAS and drive encodes from a browser.
Quick install (CLI)¶
pip install yt-uniquifier # core + CLI
pip install yt-uniquifier[gui] # adds the PyQt6 desktop GUI
pip install yt-uniquifier[web] # adds the FastAPI web UI
yt-uniq --version
Requires ffmpeg / ffprobe on PATH. Optional binaries:
fpcalc (chromaprint), ffmpeg with libvmaf, whisper-cpp (for
subtitle generation). See Install for full notes.
First encode in 60 seconds¶
yt-uniq probe input.mp4 # see what it is
yt-uniq preflight input.mp4 --profile cid_aware # sanity-check
yt-uniq run input.mp4 --profile cid_aware --output out.mp4
A fuller tour lives at Getting started.
What's new in v0.9¶
- Community profile marketplace — browse and install YAML profiles from a curated, SHA-pinned catalog without leaving the CLI/GUI. Read more →
- Whisper subtitle transform — burn pre-generated SRT/ASS
into the video;
yt-uniq subtitles generateproduces the SRT via whisper.cpp. Read more → - Opt-in local telemetry — one anonymous summary event per run, JSONL on disk, no network. Read more →
- Headless FastAPI web UI + Docker image — drive encodes from a browser; baked-in ffmpeg, non-root container, basic auth via env vars. Read more →
- Localization (en + ru) — hot-swappable in Settings → Appearance → Language. Read more →
The full v0.9 roadmap and round-by-round breakdown live at
specs/v0.9-plan.md in the repo.