Simple Windows-friendly GUI wrapper around yt-dlp.
- Download: single URL or playlist (including selected playlist items).
- Formats: fetch available resolutions/FPS and pick video+audio or audio-only.
- Playlist preview: thumbnails, multi-select, and "Load more" paging.
- History (MVP): persisted download history with Open folder + Retry.
- Optional: cookies-from-browser and JS runtime + EJS scripts source for YouTube challenges.
See CHECKPOINT.md for recent changes.
Create a venv and install dependencies:
python -m venv .venvActivate:
- Windows (PowerShell):
.venv\Scripts\Activate.ps1
- Windows (cmd):
.venv\Scripts\activate.bat
- macOS/Linux:
source .venv/bin/activate
Install:
python -m pip install -e ".[dev]"python app.py- Each run writes a log file in the per-user app data folder.
- Windows:
%APPDATA%\\yt-dlp-gui\\logs\\ - macOS:
~/Library/Application Support/yt-dlp-gui/logs/ - Linux:
${XDG_DATA_HOME:-~/.local/share}/yt-dlp-gui/logs/
- Windows:
History is stored as JSON in the per-user app data folder:
- Windows:
%APPDATA%\yt-dlp-gui\history.json - macOS:
~/Library/Application Support/yt-dlp-gui/history.json - Linux:
${XDG_DATA_HOME:-~/.local/share}/yt-dlp-gui/history.json
- If you see "Signature solving failed", select a JS runtime (node/deno/bun) and set
"EJS scripts source" to
ejs:githuborejs:npmin the UI, then retry.
See packaging/README_WINDOWS.md and scripts/build_windows.ps1.