PIDM is a modern, open-source internet download manager written in Python and powered by PySide6 (Qt). It features full support for stream and file downloads, Chrome extension integration, smart UI features, and multi-language support — all in a beautiful, theme-aware desktop application.
- 🎞️ Stream downloads from YouTube, Twitch, Netflix, and more (via
yt_dlp
) - 📥 File downloads with multithreading and parallel chunking (
httpx
) - 🧩 Browser extension for Chrome-based browsers (via PIDM-ext)
- 🗂️ Queue system with concurrent downloads and scheduling
- 🌈 Theme-aware UI (automatic light/dark mode)
- 🌐 Multi-language support (English, فارسی, ...)
- 💻 Lightweight and fast standalone Windows build via Nuitka
- 🔐 Login/auth support, global and per-download speed limits
- 💽 SQLite-based session persistence (downloads remembered between launches)
- 🌍 Proxy communication support for external triggers
If you enjoy my work and want to support future development, you can donate here:
👉 Donate via my official website
Every contribution helps keep the project alive. Thank you!
Get the latest .exe
from the Releases page.
Source and updates available at PIDM Extension Repository
-
Clone the repo:
git clone https://github.com/saeedmasoudie/PIDM.git cd PIDM
-
Install dependencies:
pip install -r requirements.txt
-
Run the app:
python main.py
- Python 3.9+
- ffmpeg (for stream muxing)
- PySide6
- httpx
- yt_dlp
- Others as listed in
requirements.txt
PIDM is available in multiple languages. You can help improve translations or add your own by editing .ts
files in assets/translations
.
Completed:
- ✅ Stream downloads with format selection
- ✅ Browser extension integration
- ✅ Smart UI with metadata previews
- ✅ Concurrent download queuing
- ✅ Calendar-based scheduling for download start times
Planned / In Progress:
- 🔁 Rework scheduling with more advanced rules and options
- 🧲 Torrent support
- 🌐 Network interface selection
PIDM uses the following open-source tools:
yt_dlp
– for stream downloadsffmpeg
– for media processinghttpx
– for robust HTTP file downloadsPySide6
– Qt-based GUI toolkitNuitka
– compiler for generating standalone builds
MIT License © Saeed Masoudi
Pull requests and ideas are welcome!
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature
- Commit changes:
git commit -m "Add feature"
- Push:
git push origin feature/your-feature
- Open a pull request
Have suggestions or questions?
Use GitHub Issues or join the Discussions.