Greasy Fork is available in English.
Unified yt-dlp downloader - generates cross-platform Python scripts for video, audio, subtitles
当前为
See Gif/Screenshot 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.
| 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.
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.hostname_cookies.txt next to the script for authentication.webm), falls back to extension-based detectionPHASE 1: Download all components (single metadata fetch)
PHASE 2: Identify downloaded files (video/audio/subtitle)
PHASE 3: Merge selected components (mkvmerge or FFmpeg)
PHASE 4: Create separate copies (if requested)
PHASE 5: Cleanup temporary files
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. Export your browser cookies to a file named hostname_cookies.txt (e.g., www.youtube.com_cookies.txt) in the same directory as the script.
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.
| Permission | Why It's Needed |
|---|---|
GM_setValue / GM_getValue |
Save your quality/codec/format preferences |
GM_setClipboard |
Reserved for future copy-to-clipboard features |