A modern, cross-platform video downloader application with a beautiful Material Design interface. Built with Python and PyQt6.
- Modern Material Design UI with animations and hover effects
- Support for YouTube and other video platforms
- Video preview and thumbnail display
- Multiple format and quality options
- Download progress tracking
- Download history with quick actions
- Cross-platform support (Windows, macOS, Linux)
You can download the latest pre-built binaries from the Releases page:
- Windows: Download
VideoDownloader-Windows.zip, extract, and runVideoDownloader.exe - macOS: Download
VideoDownloader-macOS.dmg, mount the image, and drag the app to Applications
- Python 3.9 or higher
- FFmpeg (required for some video formats)
- Clone the repository:
git clone https://github.com/Tolstoyj/YoutubeVideoDownloaderPython.git
cd YoutubeVideoDownloaderPython- Create a virtual environment (recommended):
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Install FFmpeg:
- Windows: Download from FFmpeg website
- macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Ubuntu/Debian) orsudo dnf install ffmpeg(Fedora)
Run the application directly:
python video_downloader_gui.pyTo build standalone executables:
python build.pyThis will create:
- On Windows:
release/VideoDownloader-Windows.zip - On macOS:
release/VideoDownloader-macOS.dmg
- Enter a video URL in the input field
- Click "Fetch Info" to load video information
- Select your preferred format from the table
- Click "Download" to start downloading
- The file will be saved to your Downloads/VideoDownloader folder
-
SSL Warning: When using urllib3 v2 with LibreSSL on macOS, you may see a warning about OpenSSL compatibility. This doesn't affect functionality.
-
YouTube Embed: Some browsers may show a warning about the Permissions-Policy header. This is a YouTube embed issue and doesn't affect functionality.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.