๐ฌ๐ง English | ๐จ๐ณ ็ฎไฝไธญๆ
What is this? A standalone video downloader called ็ฌ่ฝฎ่ฝฆ (DL Cart) that integrates the full power of yt-dlp and FFmpeg into a single double-clickable
.exe. No Python, no FFmpeg, no command line โ just paste a URL and download.
Everything yt-dlp can do, accessible through a clean GUI:
- 1000+ sites supported โ YouTube, Bilibili, Twitter/X, TikTok, Douyin, Vimeo, and many more (same as yt-dlp)
- Best quality by default โ Automatically selects the best available video + audio streams and merges them
- Quality presets โ 4K, 1080p, 720p, 480p, or audio-only, one click to switch
- Custom format string โ Advanced users can enter any yt-dlp format string directly
- Speed limiting โ Cap download bandwidth (KB/s), useful on shared connections
- 10+ subtitle languages โ English, Chinese (Simplified / Traditional), Japanese, Korean, Spanish, French, German, Russian, auto-detect
- Auto-generated subtitles โ Download machine-generated subtitles where available
- Thumbnail embedding โ Automatically embeds video thumbnails into downloaded files
- Metadata tagging โ Writes title, uploader, and other metadata via FFmpeg
- Concurrent downloads โ Up to 10 simultaneous downloads (configurable)
- Queue system โ Add multiple URLs, they download in order as slots free up
- Cancel & retry โ Cancel in-progress downloads cleanly; retry failed ones with one click
- Persistent history โ Last 200 downloads saved to disk, survives app restart
- Right-click actions โ Cancel / Retry / Open File / Open Folder / Delete from list
- Visual progress bar โ Unicode block bar
โโโโโโโโ 45%updates in real time - Speed & ETA โ Live download speed and estimated time remaining
- File size tracking โ Shows total and downloaded bytes
- Color-coded status โ Green = done, Yellow = downloading, Red = failed
- Bundled FFmpeg โ ffmpeg.exe is packed inside the EXE, zero external dependencies
- Windows notifications โ Toast notification pops up when a download finishes
- Dark / Light theme โ Switch in settings, dark mode by default
- Proxy support โ Configure HTTP/SOCKS proxy for restricted networks
- Safer proxy handling โ Ignores broken
HTTP_PROXY/HTTPS_PROXYenvironment settings unless you explicitly configure a proxy in the app - Cookie fallback โ If browser cookie access fails, the app automatically retries without browser cookies when possible
When you run the EXE for the first time, Windows may show:
"Windows protected your PC"
This is a false positive โ the app is built from public source code by GitHub Actions. It happens because the EXE is not code-signed.
How to bypass:
- Click "More info"
- Click "Run anyway"
If you prefer not to bypass it, you can build the EXE yourself from source or run directly with Python.
- Go to Latest Release
- Download
DLCart.exe - Double-click to run โ no installer, no dependencies
The EXE already includes yt-dlp + FFmpeg. It just works.
Requirements: Python 3.8+, Windows / macOS / Linux.
git clone https://github.com/HaipingShi/ytdlp-lh.git
cd ytdlp-lh
pip install -r requirements.txt
python ytdlp_gui.pyFFmpeg should be installed separately if running from source. On Windows, place
ffmpeg.exenext toytdlp_gui.py. If you want browser-based extraction fallback for supported sites, also runpython -m playwright install chromium.
pip install pyinstaller yt-dlp playwright
python -m playwright install chromium
# Windows (bundles ffmpeg.exe if present in current dir)
pyinstaller --onefile --windowed --collect-all yt_dlp ^
--add-binary "ffmpeg.exe;." --add-binary "ffprobe.exe;." ^
--name DLCart ytdlp_gui.py- Double-click
DLCart.exe - Paste any video URL into the input box (Ctrl+V)
- Pick quality โ leave "Best" for maximum quality
- Click Download
- Done โ click "Open File" in the right-click menu to play it
If this is your first time using DL Cart, follow this flow:
- Open
DLCart.exe - Copy a video page link from your browser
- Paste the link into the Video URL box
- Leave Best Quality selected unless you want a smaller file
- Click Download
- Wait for the row to change to
COMPLETED - Right-click the finished row and choose Open File or Open Folder
Tips:
- If a site needs login, open Advanced or Settings and choose a browser in Cookie Browser
- If your network requires a proxy, enter it in Proxy URL
- If a download fails, right-click the row and choose Retry
- If you only want audio, select Audio Only before downloading
Here is the easiest way to use the app without touching advanced settings:
- Open the video in your browser and copy the full page URL
- Return to DL Cart and paste the URL into the top input box
- Keep the quality on Best Quality
- Click Download
- Watch the task appear in the list below
What you will see:
QUEUEDmeans the task is waiting for a free slotDOWNLOADINGmeans the file is actively downloadingPROCESSINGmeans yt-dlp / FFmpeg is finishing the fileCOMPLETEDmeans the file is ready to openFAILEDmeans something went wrong and you can use Retry
When you need Advanced or Settings:
- Use Audio Only if you want music, podcasts, or spoken content only
- Use Proxy URL only if your network really requires a proxy
- Use Cookie Browser only for sites that require login or age/account verification
- Leave advanced settings empty for normal public videos
Three common examples:
- Download a normal public video: Paste the link, keep Best Quality, click Download
- Download only audio: Paste the link, choose Audio Only, click Download
- Download a members-only / login-required video: Paste the link, open Advanced, choose your browser in Cookie Browser, then download
| Action | How |
|---|---|
| Paste URL | Ctrl+V in URL field, or right-click โ Paste |
| Cancel download | Right-click row โ Cancel |
| Retry failed | Right-click row โ Retry |
| Open downloaded file | Right-click row โ Open File |
| Open download folder | Right-click row โ Open Folder |
| Clear URL | Click the Clear button |
Open via the โ๏ธ button. All settings persist across sessions.
| Setting | Description | Default |
|---|---|---|
| Download Directory | Where files are saved | ~/Downloads |
| Max Concurrent | Parallel download slots (1โ10) | 3 |
| Speed Limit | KB/s cap, 0 = unlimited | 0 |
| Proxy URL | Explicit HTTP/SOCKS proxy, blank = disabled | empty |
| Cookie Browser | Load cookies from Chrome / Edge / Firefox when needed | empty |
| Theme | Dark or Light | Dark |
Settings are stored at ~/.dlcart/settings.json.
This application supports every site that yt-dlp supports โ over 1000 and counting. Here are some popular ones:
| Site | Site | Site |
|---|---|---|
| YouTube | Bilibili | Twitter/X |
| TikTok / Douyin | Vimeo | Dailymotion |
| SoundCloud | Niconico | Twitch |
| Tumblr | Many more... |
Full list: yt-dlp supported sites
ytdlp-lh/
โโโ ytdlp_gui.py # Entire application in a single file
โโโ requirements.txt # Runtime/build dependencies
โโโ .github/workflows/
โ โโโ build.yml # CI: build EXE + publish to GitHub Releases
โโโ docs/ # Documentation & plans
โโโ README.md
Windows says "protected your PC"
This is SmartScreen blocking an unsigned app. Click "More info" โ "Run anyway". See the Security Notice section above for details and alternatives.
Video downloads but has no audio
This means video and audio streams were not merged. Make sure FFmpeg is available. If using the EXE, FFmpeg is bundled and this shouldn't happen. If running from source, install FFmpeg.
"Unsupported URL" error
- Check your internet connection
- Make sure the URL works in a browser
- The site might require login, be region-locked, or not be supported by yt-dlp yet
Downloads are slow
- Try setting a speed limit (Settings โ Speed Limit) โ some servers throttle aggressive connections
- Select a lower quality to reduce file size
- Your ISP might be throttling video traffic โ try a VPN
Downloads fail because of a proxy error
- If you did not explicitly configure a proxy in the app, DL Cart ignores
HTTP_PROXY/HTTPS_PROXYfrom the shell environment - If you do need a proxy, set it in Advanced or Settings instead of relying on environment variables
- If downloads still fail, clear the in-app proxy field and try again
Browser cookie loading fails
- Some Windows/browser setups block access to the browser cookie database while the browser is running
- DL Cart automatically retries without browser cookies when possible
- If the site truly requires login, open Advanced or Settings and choose the correct browser only when needed
- Leaving Cookie Browser blank is the safest default for public videos
App won't start
EXE version:
- Requires Windows 10 1809+
- Right-click โ Properties โ check "Unblock" if downloaded from the internet
- Try Run as Administrator
Python version:
- Ensure Python 3.8+:
python --version - Install deps:
pip install -r requirements.txt - Check
dlcart.logfor error details
- Fork the repo
- Create a branch:
git checkout -b feature/my-feature - Commit:
git commit -m 'Add my feature' - Push:
git push origin feature/my-feature - Open a Pull Request
Bug reports and feature requests welcome at Issues.
MIT License โ see LICENSE.
- yt-dlp โ The download engine that makes everything possible
- FFmpeg โ Stream merging, metadata, and thumbnail embedding
- Python + Tkinter โ Application runtime and GUI
Star โญ this repo if you find it useful!
