Universal Media Downloader
Universal Media Downloader is a cross-platform desktop application for downloading media (video and audio), written in Python using the PyQt6 framework.
The application is built on a multithreaded architecture (QThreadPool, QRunnable) to ensure a fully responsive UI during operations. It uses yt-dlp as the backend to support hundreds of sites (YouTube, VK, TikTok, RuTube, etc.) and FFmpeg for post-processing (e.g., format merging or audio extraction).
Key features:
- Parallel downloading of multiple files with queue management (start, stop, retry task).
- Flexible input: direct URL paste, batch paste from clipboard, drag-and-drop links and txt files.
- Advanced settings:
- Quality selection (including "audio only") individually for each service.
- Cookie support (from file or through browser auto-detection) for accessing private content.
- Automatic subtitle downloading.
- Modern UI:
- Custom widgets (QListWidget) for displaying list items (preview, progress, status).
- Full theme customization (Light/Dark) via QSS.
- Internationalization (i18n) with on-the-fly language switching (Ru/En/Uk).
- Reliability: logging, ffmpeg presence check at startup, cleanup of temporary files on cancellation.
The application is built on a multithreaded architecture (QThreadPool, QRunnable) to ensure a fully responsive UI during operations. It uses yt-dlp as the backend to support hundreds of sites (YouTube, VK, TikTok, RuTube, etc.) and FFmpeg for post-processing (e.g., format merging or audio extraction).
Key features:
- Parallel downloading of multiple files with queue management (start, stop, retry task).
- Flexible input: direct URL paste, batch paste from clipboard, drag-and-drop links and txt files.
- Advanced settings:
- Quality selection (including "audio only") individually for each service.
- Cookie support (from file or through browser auto-detection) for accessing private content.
- Automatic subtitle downloading.
- Modern UI:
- Custom widgets (QListWidget) for displaying list items (preview, progress, status).
- Full theme customization (Light/Dark) via QSS.
- Internationalization (i18n) with on-the-fly language switching (Ru/En/Uk).
- Reliability: logging, ffmpeg presence check at startup, cleanup of temporary files on cancellation.