Skip to content

Build Windows EXE

Deep edited this page Jul 16, 2026 · 1 revision

Build Windows EXE

This guide explains how to build a standalone Windows executable (.exe) for QIFY Downloader using PyInstaller.


Requirements

Before building, make sure you have:

  • Windows 10 or Windows 11
  • Python 3.10 or newer
  • FFmpeg installed
  • All project dependencies installed

Install dependencies:

pip install -r requirements.txt

Install PyInstaller

Install PyInstaller using pip:

pip install pyinstaller

Verify installation:

pyinstaller --version

Build the Executable

Open a terminal in the project folder and run:

pyinstaller --onefile --windowed --icon=assets/qify.ico --name QIFY-Downloader main.py

Build Output

After the build completes, you'll see:

dist/
└── QIFY-Downloader.exe

The dist folder contains the executable that you can distribute.


Test the Executable

Before publishing:

  • Run the executable.
  • Test MP3 downloads.
  • Test MP4 downloads.
  • Test multiple URLs.
  • Verify FFmpeg detection.
  • Verify the download folder selection.

Publishing a Release

After testing:

  1. Go to your GitHub repository.
  2. Open Releases.
  3. Click Create a new release.
  4. Create a tag such as:
v1.0.0
  1. Upload:
QIFY-Downloader.exe
  1. Publish the release.

Users can then download the executable directly from GitHub.


Windows Security Notice

Because the executable is currently not digitally signed, Windows Smart App Control or Microsoft Defender may display a warning when it is run for the first time.

This is normal for new unsigned applications from independent developers.

Users who prefer can inspect the source code on GitHub and build the application themselves.


Troubleshooting

PyInstaller command not found

Install PyInstaller:

pip install pyinstaller

Icon not applied

Make sure the icon exists:

assets/qify.ico

and build using:

--icon=assets/qify.ico

Executable does not start

Check:

  • Python dependencies
  • FFmpeg installation
  • Windows Defender or Smart App Control messages

Review the terminal output for any build errors.

Clone this wiki locally