A high-performance, cross-platform download manager written in C++17 with Qt6.
- Multi-chunk HTTP downloads — Split files into multiple chunks for maximum speed
- Torrent & Magnet support — Via aria2c integration
- YouTube/video downloads — Via yt-dlp integration with format selection
- Browser extension — Chrome & Firefox extensions to intercept downloads automatically
- Playlist support — Download entire playlists with track numbering
- Speed limiter — Set download/upload speed limits
- Resume & pause — Pause and resume downloads at any time
- Single instance — Multiple launches forward URLs to the running instance
- System tray — Minimize to tray with download progress
| Platform | Status |
|---|---|
| Windows | Supported |
| macOS | Supported |
| Linux | Supported |
- Qt 6.5+ (validated on Qt 6.11.2 MinGW 64-bit) — LGPLv3
- CMake 3.16+ (validated on 3.30.5)
- Ninja build system
- C++17 compiler — MinGW/GCC (validated on GCC 13.1.0,
x86_64-posix-seh); also MSVC 2019+ / Clang 10+ - Optional:
libtorrent-rasterbar(torrent support; otherwise aria2c is used)
Note: Because the executable is linked as a GUI (Win32) application, it no longer opens a terminal/console log window on launch. Logs go only to
copper.login the app-data folder.
- Install Qt + MinGW toolchain (e.g.
C:\Qt\6.11.2\mingw_64withC:\Qt\Tools\mingw1310_64). - Ensure
gcc,ninja, andcmakeare onPATH. - Configure and build (use a space-free build directory):
cmake -S . -B C:\Qt\Builds\CopperDownloadManager\rel -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_PREFIX_PATH=C:/Qt/6.11.2/mingw_64
cmake --build C:\Qt\Builds\CopperDownloadManager\relWindows version/icon resource:
app.rcis compiled from a copy inside the build tree bywindres(invoked directly, with no include flags, so the source path may contain spaces). The resulting.rsrcobject is then normalized bytools/fix_version_resource.pyto fix a binutils 2.39windresquirk that otherwise makes the version invisible to Windows; the exe reliably reportsFileVersion/ProductVersionin Explorer and viaGetFileVersionInfo.
The release build is automatically deployed to installer/release/<version>/ (windeployqt) and the final package (Setup.exe + portable zip) is placed in Release/.
A GitHub Actions workflow (.github/workflows/ci.yml) builds the project in Debug and Release on Windows (Qt 6.6.3), smoke-checks that the produced executable is a GUI (non-console) application, and uploads a portable zip artifact. (CI uses the Qt version whose MinGW binaries link against the runner's preinstalled GCC; the local dev machine additionally uses Qt 6.11.2.)
Copper downloads these tools when the user requests them from Settings → Tools:
| Tool | Version | License | Purpose |
|---|---|---|---|
| aria2c | 1.37.0 | GPLv2 | Torrent/magnet downloads |
| FFmpeg | Latest | GPL v2+ | Audio/video processing |
| yt-dlp | 2026.07.01 | Unlicense | Video/audio downloading |
Copper Download Manager/
├── CMakeLists.txt # Build configuration
├── main.cpp # Entry point, single-instance logic
├── app.rc # Windows resource file (icon, version)
├── THIRD-PARTY-NOTICES.txt # License notices for all dependencies
├── Assets/ # Application icons
├── extensions/ # Browser extensions (Chrome & Firefox)
│ ├── Copper Download Manager Chrome/
│ └── Copper Download Manager Firefox/
├── include/
│ ├── core/ # Core download engine headers
│ ├── db/ # Database manager header
│ ├── ui/ # UI headers
│ └── utils/ # Utility headers (aria2c, ffmpeg, yt-dlp)
└── src/
├── core/ # Download engine implementation
├── db/ # SQLite database
├── ui/ # Qt UI (MainWindow, Settings, dialogs)
└── utils/ # External tool managers
Copper Download Manager is freeware. See THIRD-PARTY-NOTICES.txt for third-party license details.
Mohamed Subarashi — GitHub · Ko-fi







