A simple and fast Windows desktop application for downloading videos and audio from supported websites.
πͺ Windows 10+ only β macOS is not currently supported.
- π₯ Download videos in up to 4K:
- 2160p (4K)
- 1440p (2K)
- 1080p
- 720p
- π΅ Download video audio as MP3
- π Choose your download location β select any folder from the sidebar; the app remembers it between sessions
- π₯ Download queue β add multiple URLs with different quality/format settings and download them sequentially
- π Dark mode
- π System notifications with notification preview
- π― Automatically selects the best available format according to the selected quality
- π Automatically keeps
yt-dlpup to date
Click the button below to download the latest version of VideoDownloaderSetup.exe.
To view previous releases and older versions, visit the Releases page.
Video Downloader includes FFmpeg, which is used when video and audio streams need to be merged.
No additional FFmpeg installation is required when using the setup installer.
Windows may display a "Windows protected your PC" warning because the installer is not digitally signed.
If you downloaded the installer from this repository's official Releases page:
- Click More info
- Click Run anyway
On first launch, Video Downloader downloads the official standalone
yt-dlp.exebinary.The binary is downloaded directly from the official yt-dlp nightly releases.
Because the binary is downloaded at runtime, some antivirus software may inspect it when it is first downloaded.
This section is for developers who want to clone the repository, run the project from source, or build the application themselves.
- Windows 10+
- Python 3.x
- Internet connection
- A Python virtual environment
git clone https://github.com/AlperSrgn/VideoDownloader.gitCreate and activate a virtual environment using your preferred method.
Install imageio-ffmpeg from the virtual environment:
pip install imageio-ffmpegIf the project cannot find the FFmpeg binary because your environment uses a different installation path, update the get_ffmpeg_path() function in utils.py.
The current project expects the FFmpeg binary under a path similar to:
.venv\Lib\site-packages\imageio_ffmpeg\binaries\ffmpeg-win-x86_64-v7.1.exe
Video Downloader uses the official standalone yt-dlp.exe binary instead of the yt-dlp Python package.
On first launch, the application downloads yt-dlp.exe to:
%LOCALAPPDATA%\VideoDownloader
The application checks for updates once per app run.
Therefore, there is no separate pip install step for yt-dlp.
Internet access is required on first launch so the application can download the standalone yt-dlp binary.
The project is built with PyInstaller.
Make sure your project's virtual environment is activated, then run:
pip install pyinstallerRun the following command:
pyinstaller --onefile --noconsole --add-binary "C:\path\to\.venv\Lib\site-packages\imageio_ffmpeg\binaries\ffmpeg-win-x86_64-v7.1.exe;." --add-data "icons\notificationIcon.ico;icons" --add-data "icons\previewIcon.ico;icons" --add-data "icons\appIcon.ico;icons" --hidden-import=plyer.platforms.win.notification main.pyπ¨ Important
The FFmpeg path in the command is a placeholder. Replace it with the correct path from your local virtual environment before running the command.
| File | Description |
|---|---|
main.py |
UI layer β builds and manages the interface, including the download queue |
downloader.py |
Download logic β runs yt-dlp.exe as a subprocess, handles format selection, FFmpeg merging, and audio downloads |
error_classifier.py |
Converts raw yt-dlp / FFmpeg errors and process results into clear, localized, user-facing messages |
ytdlp_manager.py |
Manages the standalone yt-dlp.exe binary, including first-run download and per-session updates |
utils.py |
General file helpers β filename sanitization, FFmpeg path handling, icon copying, and URL cleaning |
settings.py |
Configuration β reads and writes application settings to AppData\Local\VideoDownloader\config.json |
languages.py |
Localization strings for Turkish and English |
- The application requires internet access to download the standalone yt-dlp binary when it is not already available.
- yt-dlp is updated through its nightly channel to receive fixes for website-side changes more quickly.
- Download and format support ultimately depends on the current capabilities of yt-dlp and the target website.
- The installer already includes FFmpeg, so end users do not need to install FFmpeg separately.




