Unified yt-dlp downloader - generates cross-platform Python scripts for video, audio, subtitles
Fra og med
☕ If you find this tool helpful & would like to support its maintenance, please consider leaving a tip on:
Thank you! :-)
🖼 For a quick impression of this script, refer to the screenshots at the bottom.
Generates ready-to-run Python scripts for downloading media from YouTube, Reddit, Instagram, TikTok, and many more sites using yt-dlp. One-click download button, configurable video/audio/subtitle options, and sophisticated merge/separate output modes—all in a cross-platform script that works on Windows, Mac, and Linux.
This script is developed and tested primarily on Windows using the following environment:
While the generated Python scripts are designed to be cross-platform and include FFmpeg fallbacks, complex merge scenarios have been thoroughly tested only with mkvmerge on Windows. If you encounter issues on other platforms or without mkvmerge, please feel free to report them, but be aware this is a personal tool shared for others to use "as is."
Downloading media with yt-dlp requires memorizing complex command-line syntax:
-f bestvideo[height<=1080]+bestaudio is not intuitive-S flags--write-subs --sub-langs en --convert-subs srt is verboseThis script generates a complete, ready-to-run Python script with all your options pre-configured. Just click, download, and run.
--cookies.py scriptGM_cookie API — no separate extension needed⚠️ Note: This is a newly integrated feature. The
GM_cookieAPI may not have access to all cookie types (such asHttpOnlyor certainSecure-flagged cookies) depending on your browser and userscript manager. Whether the exported cookies are sufficient for login-required content (age-restricted, private, members-only) has not been thoroughly tested. For reliable authenticated downloads, a dedicated cookie extension like "Get cookies.txt LOCALLY" remains the proven approach — place the exported file alongside the.pyscript named%domain%_cookies.txt.
| Mode | Description |
|---|---|
| Merge | Combine video + audio + subtitles into one MKV file |
| Separate | Keep each component as its own file |
| Merge + Sep | Get both: merged file AND separate copies |
| None | Skip this component entirely |
Mix and match modes per component—e.g., merge video+audio but keep subtitles separate.
Right-click the ☕ Support button to access hidden power-user options:
.py script after successful executionWhen downloading video + audio as separate streams, the script uses a robust two-tier system to correctly identify which file is which:
This prevents misclassification of audio-only .webm/.mp4 files as video.
Generated scripts verify that all required tools (ffmpeg, ffprobe, mkvmerge) are available before starting any downloads, based on what the selected options actually need. Clear error messages tell you exactly what to install.
Works on any site supported by yt-dlp, including:
| Action | Result |
|---|---|
| Click | Download Python script with current settings |
| Right-click | Open settings menu |
| Double-click | Hide button for 5 seconds |
Windows:
python dl_video_name.py
Mac/Linux:
python3 dl_video_name.py
The script changes to its own directory automatically—run it from anywhere.
.py script pre-configured with your URL and settings.For public content, no cookies are needed. For login-required content (age-restricted, private, members-only), you have two options:
Use the "🍪 Export Cookies" button or enable "Auto Export Cookies" in Secret Extras. This is quick and requires no extra tools, but the GM_cookie API may not be able to access all cookie types depending on your browser and userscript manager. Whether the exported cookies are sufficient for authenticated content has not been thoroughly tested yet — your mileage may vary.
Use a browser extension like "Get cookies.txt LOCALLY" which has deeper browser-level access and is known to produce complete cookie exports. Place the exported file in the same directory as the .py script, named %domain%_cookies.txt (e.g., www.youtube.com_cookies.txt). The generated scripts automatically detect and use it.
| Manager | Status |
|---|---|
| Tampermonkey | ✅ Exports cookies (real-world sufficiency for authenticated content still being evaluated) |
| Violentmonkey | ⚠️ GM_cookie recently merged but not yet in the published extension — will show "API not available" until a new version is released |
hostname_cookies.txt next to the script for authenticationPHASE 1: Download all components (single metadata fetch)
PHASE 2: Identify downloaded files (two-tier: ffprobe → yt-dlp probe)
PHASE 3: Merge selected components (mkvmerge or FFmpeg)
PHASE 4: Create separate copies (if requested)
PHASE 5: Cleanup temporary files (+ optional script/cookie removal)
Q: Why Python instead of batch files?
A: Batch files only work on Windows. Python scripts run on Windows, Mac, and Linux with identical behavior.
Q: Do I need to install any Python packages?
A: No. The script uses only Python's standard library (subprocess, shutil, pathlib, glob).
Q: What if mkvmerge isn't installed?
A: The script falls back to FFmpeg via yt-dlp's native merging. Some advanced combinations (merge video+subs without audio) require mkvmerge.
Q: Why does the script ask for subtitle language every time?
A: Different videos have different available subtitles. The script shows you what's available and lets you choose interactively.
Q: Can I download private/age-restricted videos?
A: Yes, with cookies. The built-in "🍪 Export Cookies" feature is available but still experimental — it may or may not provide sufficient cookies depending on your browser and the site's requirements. For reliable results, a dedicated cookie extension like "Get cookies.txt LOCALLY" is the proven approach. See the Cookie Authentication section above.
Q: Will the generated scripts run after I close the browser?
A: Yes. The .py scripts are fully standalone and run independently of the browser.
Q: Can the script and cookie files auto-delete after running?
A: Yes. Enable "Delete Py After Run" and/or "Delete Cookie After Run" in the Secret Extras menu (right-click "☕ Support"). Files are only deleted after successful execution.
Q: The download button isn't appearing on a site.
A: The script only activates on sites listed in the @match directives. You can add additional sites by editing the userscript header.
Q: What is the Secret Extras menu?
A: Right-click the "☕ Support" button in the context menu to reveal power-user toggles like Prefer MP4, auto-cleanup, and cookie auto-export.
Q: The cookie export shows "API not available."
A: This means your userscript manager doesn't support the GM_cookie API yet. Tampermonkey supports it; Violentmonkey has it merged but not yet in the published extension. Use a dedicated cookie extension as a workaround.
| Permission | Why It's Needed |
|---|---|
GM_setValue / GM_getValue |
Save your quality/codec/format preferences |
GM_cookie |
Export browser cookies for yt-dlp authentication (experimental — see Cookie Authentication section) |