Skip to content

Windows Binary Checklist

This checklist is for the standalone Windows release, not for uv tool or developer installs.

Direction Check

Yes, these are the right directions:

  1. Make the Windows binary use Windows-native default paths.
  2. Make C:\Users\<user>\Downloads\VDL the default download directory.
  3. Verify config, state, cache, and logs resolve to the expected Windows locations.
  4. Treat the PowerShell installer as the Windows equivalent of curl | sh.
  5. Make the installer/bootstrap safe to rerun: install if missing, update if older, no-op if current, and fail before replacement when required dependencies are missing.

Windows standalone builds support the same features as macOS standalone builds, including interactive mode.

Expected Windows Defaults

  • Downloads: C:\Users\<user>\Downloads\VDL
  • Config: %APPDATA%\vdl
  • Config file: %APPDATA%\vdl\config.toml
  • Site rules: %APPDATA%\vdl\websites.yaml
  • State: %LOCALAPPDATA%\vdl
  • Database: %LOCALAPPDATA%\vdl\vdl.db
  • Cache: %LOCALAPPDATA%\vdl\cache
  • Logs: %LOCALAPPDATA%\vdl\logs

These defaults match the current path logic in src/vdl/paths.py.

Prompt Snapshot To Validate

Use this prompt flow as a release check:

URL or local file path: https://www.youtube.com/watch?v=...
This URL is part of a playlist. What would you like to download?
  1. Just this video (default)
  2. All videos in the playlist
Type 1 or 2, or type 'single' or 'playlist' (Enter=1):
Quality (best):
Output directory (default: C:\Users\<user>\Downloads\VDL):
Save thumbnail? [Y/n]
Save subtitles (.vtt)? [Y/n]
Cookies file (Enter to skip):

Prompts and Outcomes To Check

  • The output directory default is C:\Users\<user>\Downloads\VDL.
  • Entering a Windows path works.
  • Entering a Unix-style path such as /Users/David/Downloads is handled intentionally.
  • No pytest temp directory appears in prompts.
  • A missing ffmpeg dependency stops installation before the app is used.
  • Re-running the installer does not blindly overwrite the same version.

Current Issues To Track

  • A Unix-style path was accepted or shown on Windows.
  • A pytest temp path appeared as the default output directory.
  • The binary failed late on missing ffmpeg.
  • Docs previously mixed binary and Python troubleshooting.
  • Installer update behavior used to overwrite binaries too aggressively.

Release Checklist

  • Confirm a fresh Windows user sees C:\Users\<user>\Downloads\VDL as the default output path.
  • Confirm vdl doctor reports Windows-native config/state/cache/log paths.
  • Confirm no pytest temp path appears in runtime prompts.
  • Confirm ffmpeg and ffprobe missing-state stops install/bootstrap with a clear message.
  • Confirm the installer leaves the current install untouched when dependencies are missing.
  • Confirm same-version reruns are a no-op unless -Force is used.
  • Confirm newer installed versions are left alone unless -Force is used.
  • Confirm vdl doctor is run as part of post-install verification.
  • Confirm PATH guidance is shown if the install directory is not on PATH.
  • Confirm both vdl.exe and vdl-mcp.exe are installed.
  • Confirm docs for binary users do not tell them to use uv tool install.
  • Confirm docs match the actual Windows binary capabilities.

PowerShell Bootstrap Expectations

The Windows equivalent already exists conceptually in scripts/install.ps1.

For release readiness, that script should:

  1. Download the released binary zip.
  2. Verify checksums.
  3. Compare the managed install version against the target version.
  4. Install vdl.exe and vdl-mcp.exe only after dependency checks pass.
  5. Preserve or restore the previous binaries if final smoke checks fail.
  6. Check PATH visibility.
  7. Run vdl doctor.
  8. Stop with clear guidance if ffmpeg or ffprobe are missing.
  9. Tell the user the expected Windows default directories.
  10. Support reinstall from a local release zip for local smoke testing and binary validation.