Skip to content

yt-dlp integration

VDL standalone and developer builds use the immutable nightly source pinned in tool.uv.sources and uv.lock. The current baseline is 2026.10.10.233141. The published Python package retains a normal PyPI dependency; its environment is managed by pip/uv rather than the standalone updater.

Download behavior

  • Use yt-dlp's default clients and native format ranking for best.
  • Require exact 2160p, 1440p, 1080p, 720p, or 480p when requested.
  • --fallback permits lower resolutions, never higher ones.
  • 4k and 2k normalize to 2160p and 1440p in every interface.
  • Merge/remux video to MP4 without re-encoding. Audio-only output remains MP3.
  • Only use explicitly configured cookies, proxies, and extractor arguments.
  • Leave network/fragment retries to yt-dlp; do not repeat failed requests with forced legacy clients or an unconfigured authentication path.

Dependencies and packaging

EJS contains challenge-solving scripts, not an executable JavaScript runtime. Deno is preferred; Node.js 22+ is also supported. An explicit js_runtime_path is passed to yt-dlp. vdl doctor reports the runtime and EJS independently. FFmpeg/ffprobe are needed for merging and media verification.

scripts/build-binaries.py packages the CLI and MCP entrypoints with the same yt-dlp assets, EJS scripts, and distribution metadata. It is shared by the macOS, Linux, and Windows build recipes. No PO-token service is installed.

Updates and verification

vdl update replaces standalone VDL and its bundled dependencies through a SHA256-verified VDL release. Test a new nightly before changing the immutable source reference, regenerate the lockfile, run the suite, rebuild both binaries, and verify actual downloads. Package installations use their package manager.

Run sh tests/smoke/test_install.sh for installer checks. For real frozen Linux installer/updater tests, start Docker and run:

docker build --platform linux/amd64 -f tests/docker/Dockerfile -t vdl-update-test:local .
docker run --rm --platform linux/amd64 vdl-update-test:local

The container tests stage releases locally and never publish to GitLab or replace host installations.