A modern, feature-rich desktop application for downloading pretty much any video stream, with multi-threading support and a user-friendly dark-themed interface.
-
Multi-threaded Downloads: Optimize download speeds with configurable thread count
-
Batch Processing: Import multiple URLs from a text file for bulk downloads
-
Format Selection: Choose between automatically scanned quality options and formats
-
Quality Options: Select from multiple standard resolution options
- Best
- High
- Medium
- Low
-
Additional Options:
- Subtitle downloads
- Playlist support
- Custom output directory
- Download speed limiting
- Proxy support
- Python 3.6+
- PyQt6
- yt-dlp
- Concurrent Futures (included in Python standard library)
- Ensure Python 3.6 or higher is installed on your system
- Install required dependencies:
pip install PyQt6 yt-dlp
Please keep in mind that some m3u8 downloads will download seperate audio and video channels. It will merge them at the end of the download.
- Launch the application
- Enter a YouTube or other video URL in the input field
- Select desired format and quality options
- Choose output directory (defaults to Downloads folder)
- Click "Download" to start
- Create a text file with stream URLs (one per line)
- Optional: Add episode identifiers before URLs (e.g., "EP01 https://youtube.com/...")
- Click "Import URLs" and select your text file
- Configure download options
- Click "Download" to process all URLs sequentially
- Navigate to the "Settings" tab
- Adjust download threads (1-32)
- Set speed limits if needed
- Configure proxy settings if required
- Click "Save Settings" to persist your preferences
- Thread Count: Higher values may improve download speed (default: 16)
- Speed Limit: Optional bandwidth throttling in KB/s
- Proxy Support: Configure proxy settings for network requirements
- Built-in error logging system
- View logs through Tools > View Error Log
- Save logs for troubleshooting
- Custom naming templates
- Automatic file organization
- Support for playlist downloads
- Modern dark theme interface
- Progress tracking with detailed status updates
- Download speed and ETA display
- Resizable window with responsive design
- Persistent settings across sessions
The application is built using:
- PyQt6 for the graphical interface
- yt-dlp for video downloading capabilities
- Python's concurrent.futures for multi-threading
- JSON for settings persistence
- Custom dark theme styling with QSS
- Download speeds may vary based on:
- YouTube's server response
- Your internet connection
- Selected thread count
- System resources
- Some videos may have restrictions that prevent downloading
- Respect YouTube's terms of service and content creators' rights
If you encounter issues:
- Check your internet connection
- Verify the YouTube URL is accessible
- Review the error log (Tools > View Error Log)
- Ensure you have adequate disk space
- Try reducing thread count if downloads are unstable
The application stores settings in:
.ytdl_settings.json
for application preferences.ytdl_errors.log
for error logging
Both files are stored in the user's home directory.
This software is provided as-is, check the source code for licensing information.