How ivanilsonibiapina/minidm works
MiniDM is a Python download manager with CLI, desktop GUI, local HTTP API/web UI, browser-extension integration, and Android support. Its central workflow accepts a URL and options, creates a persistent task, schedules a downloader, and reports progress and completion. Download paths include segmented/resumable files, HLS/DASH streams, FTP/SFTP, torrents delegated to aria2, and yt-dlp. The README documents additional capabilities such as profiles, categories, checksums, verification, and live streams. Some subsystems were not sampled; their documented capabilities are shown, while uncertain internal call paths are omitted.
Main entry points: scheduler.py Scheduler · server.py Local API · stream.py HLS/DASH Engine · downloader.py Segmented File Engine
Components 25
User Interfaces
- CLI
minidm/cli.py - Desktop GUI
minidm/gui.py - Browser Extension
browser_ext/popup.js - Web UI
webui/app.js
Download Engines
- Server Probe
minidm/remote.py - Segmented File Engine
minidm/downloader.py - FTP/SFTP Engine
minidm/ftpdl.py - Bandwidth Control
minidm/throttle.py
Media and Integrations
- HLS/DASH Engine
minidm/stream.py - Media Analysis
minidm/media.py - yt-dlp Analysis
minidm/ytdlp.py - yt-dlp Downloader
minidm/ytdlpdl.py - Torrent Delegation
minidm/torrent.py - aria2
- FFmpeg
Configuration and Results
- Task Model
minidm/meta.py - Persistent Queue
minidm/store.py - Settings
minidm/config.py - Profiles and Categories
minidm/profiles.py - Checksum and Signature
minidm/verify.py - Downloaded Files
Other components
- User
Connections 37
- User → CLI: submits URLs
README.md - User → Desktop GUI: manages downloads
README.md - Browser Extension → Local API: submits media
README.md - Web UI → Local API: controls queue
README.md - CLI → Scheduler: submits tasks
minidm/cli.py - Desktop GUI → Scheduler: controls tasks
minidm/gui.py - Desktop GUI → Local API: starts local API
minidm/gui.py - Daemon → Scheduler: runs downloads
minidm/daemon.py - Local API → Scheduler: submits tasks
minidm/server.py - Local API → Persistent Queue: adds and reads tasks
minidm/server.py - Local API → yt-dlp Analysis: resolves media titles
minidm/server.py - Scheduler → Persistent Queue: claims and updates
minidm/scheduler.py - Persistent Queue → Task Model: persists records
minidm/store.py - Scheduler → Segmented File Engine: runs downloads
minidm/scheduler.py - Scheduler → HLS/DASH Engine: runs stream tasks
minidm/scheduler.py - Scheduler → yt-dlp Downloader: delegates downloads
minidm/scheduler.py - Scheduler → FTP/SFTP Engine: delegates FTP/SFTP
minidm/scheduler.py - Scheduler → Torrent Delegation: delegates torrents
README.md - Scheduler → Settings: uses settings
minidm/scheduler.py - CLI → Profiles and Categories: applies profiles
minidm/cli.py - Local API → Profiles and Categories: accepts profile options
minidm/server.py - Segmented File Engine → Server Probe: probes server
minidm/downloader.py - Segmented File Engine → Bandwidth Control: limits transfer rate
minidm/downloader.py - Segmented File Engine → Checksum and Signature: checks completed files
minidm/downloader.py - Segmented File Engine → Downloaded Files: writes downloads
README.md - FTP/SFTP Engine → Segmented File Engine: reuses download engine
minidm/ftpdl.py - HLS/DASH Engine → Media Analysis: uses manifest formats
minidm/stream.py - HLS/DASH Engine → Bandwidth Control: limits segment transfers
minidm/stream.py - HLS/DASH Engine → Checksum and Signature: verifies output
minidm/stream.py - HLS/DASH Engine → Downloaded Files: writes assembled media
README.md - Media Analysis → yt-dlp Analysis: supports analysis delegation
minidm/media.py - yt-dlp Downloader → yt-dlp Analysis: uses yt-dlp integration
minidm/ytdlpdl.py - yt-dlp Downloader → Downloaded Files: writes media files
README.md - Torrent Delegation → aria2: delegates via RPC
README.md - Torrent Delegation → Downloaded Files: preserves partial data
README.md - HLS/DASH Engine → FFmpeg: muxes audio and video
- Checksum and Signature → Downloaded Files: checks downloaded files
README.md