Skip to content

Repository files navigation

Thunder Download Manager Logo

Thunder Download Manager (ThunderDM)

An ultra-fast, modern, multi-threaded download manager with intelligent browser integration, dynamic segmentation, and media streaming support.

Go Version Wails v3 React 19 Tailwind CSS v4 Platforms Chrome Web Store Firefox Add-on


πŸ“‹ Table of Contents


πŸš€ Overview

Thunder Download Manager (ThunderDM) is a next-generation desktop download manager engineered for maximum speed, security, and convenience. Powered by Go and Wails v3 on the backend and React 19 with Tailwind CSS v4 on the frontend, ThunderDM brings a modern, sleek UI alongside low-level networking optimizations.

It features a custom high-performance multi-segment download engine that dynamically splits files into concurrent byte ranges, pools TCP connections, supports native HLS (.m3u8) stream assembly, captures video and streaming media, and connects effortlessly with all major web browsers via its companion extension.


✨ Key Features

⚑ Multi-Threaded Dynamic File Segmentation

  • Accelerates download speeds up to 500% by splitting files into dynamic multi-threaded byte-range segments.
  • Real-time connection pooling, zero-allocation network buffers, and automatic chunk reallocation.
  • Full pause, resume, cancel, and restart capabilities with automated file integrity verification.

πŸ“¦ Advanced Batch Download Engine & Recursive Crawler

  • Pattern & Multi-Wildcard Sequence Generator: Generate dozens or hundreds of sequential download links using asterisks (*) or bracket expressions ([01-50], [01-50:2], [a-z:2]).
  • Multi-Wildcard (*_*) Cartesian Product: Support multiple independent wildcards in a single URL (e.g. season_*_episode_*.mp4) with dedicated configuration tabs for each wildcard.
  • Custom Interval / Step Settings: Generate odd/even numbers (1, 3, 5, 7... with step 2), custom intervals (0, 5, 10, 15... with step 5), or alphabetical steps (a, c, e...).
  • Bulk URL List & File Ingestion: Paste multiple links at once or import plain .txt files with automatic URL sanitization.
  • Recursive Webpage Link Sniffer & Directory Crawler: Traverse entire BDIX, FTP, Apache, Nginx, h5ai, and Alist server directories across multiple levels (depth 1 to 5), with subfolder filtering and automatic local directory hierarchy reconstruction.

🎬 High-Resolution Video & Media Streaming Capture

  • Capture and download media from YouTube, Facebook, TikTok, Instagram, Twitter / X, Vimeo, Dailymotion, and 1,000+ streaming sites with built-in format selection.
  • Interactive quality and format picker (4K, 1080p, 720p, MP3/Audio-only) with automated stream remuxing.

πŸ“Ί Native HLS / m3u8 Stream Downloader

  • Custom high-speed .m3u8 playlist parser, AES-128 decryptor, and multi-segment stream assembly engine for live and VOD streams.

🎨 Rich Appearance & 9 Handcrafted Theme Palettes

  • 9 Handcrafted Theme Palettes: Choose between Zinc (Monochrome), OLED (Pure Black), Midnight (Deep Navy), Violet, Emerald, Rose, Amber, Cyan, and Classic Blue.
  • Custom Typography & Sizing: Select any installed system font with live rendering preview, adjust base font size (9px – 18px), and toggle compact top bar and icon labels.

🌍 Multi-Language Interface (i18n)

  • Comprehensive internationalization supporting English, বাংলা (Bengali), EspaΓ±ol (Spanish), FranΓ§ais (French), and Deutsch (German) with instantaneous language switching.

πŸ’Ύ Pure SQLite Relational Database Engine

  • Zero JSON Config Files: 100% centralized, robust persistence using pure Go SQLite (~/.thunderdm/thunderdm.db).
  • Atomic ACID transactions, automatic schema migrations, WAL mode for lightning-fast reads/writes, and zero data corruption.

🌐 System Proxy, PAC & SOCKS5 Routing Engine

  • Supports Direct, System Proxy (Windows Registry & OS Network auto-detection), PAC (Proxy Auto-Configuration script evaluation with in-memory caching), and Manual SOCKS5 / HTTP modes.
  • Granular CIDR and wildcard bypass lists (localhost, 127.0.0.1, 192.168.0.0/16, *.local).
  • Built-in proxy connection tester with live latency and external IP verification.

πŸͺ Browser Cookie & Authenticated Downloading

  • Supports forwarding browser cookies (HttpOnly & client-side) to download private files (such as assets from private GitHub repositories, password-protected sites, or member-only media).

πŸ” Site Credentials Vault & Basic Auth

  • Encrypted local vault to store site credentials (username & password) that auto-matches target hostnames and authenticates downloads and recursive crawler sessions seamlessly.

πŸ›‘οΈ Antivirus Verification & Real-Time File Integrity Checksums

  • CI/CD ClamAV Antivirus Scanned: All official release binaries are scanned with ClamAV antivirus and verified clean with published security certificates.
  • Built-in checksum validator supporting SHA-256, SHA-512, MD5, SHA-1, and CRC32 hashes to guarantee downloaded file integrity.

⏳ Advanced Queue Manager & Scheduler

  • Create, prioritize, and manage multiple download queues with custom concurrency limits.
  • Multi-item right-click queue assignment, instant "Without Queue" downloads, and scheduled start/stop automation.
  • Granular Queue Window Controls: Configure Show real time download process and Download compression window popups individually per queue (disabled by default for silent background operation).
  • One-Click Stop All: Instantly halts all active queues and running/pending/queued downloads with immediate background stream cancellation.

⚠️ Settings "Danger Zone" & App Reset

  • Dedicated Danger Zone for resetting preferences to defaults or executing a complete clean purge of ~/.thunderdm app data with double confirmation safeguards.

πŸŽ›οΈ Granular Bandwidth Limiter

  • Granular global and per-download speed throttling to prevent network congestion.

πŸ”” System Tray & Desktop Integration

  • Smooth minimize-to-tray background service with native desktop notifications.
  • Single-instance protection with automatic window restore and CLI argument parsing.
  • Default-enabled automatic launch on system boot (Start On Boot) syncing with native OS startup registries across Windows, macOS, and Linux.

πŸ“¦ Batch Download Engine

ThunderDM features a full-fledged batch ingestion system with three dedicated modes:

1. Pattern / Sequence Generation

Generate structured download links matching numerical or alphabetical patterns:

  • Single Wildcard (*): http://example.com/files/document_*.pdf
    • Set Range: From: 1, To: 10, Digit Padding: 2 $\rightarrow$ document_01.pdf to document_10.pdf
  • Interval / Step (e.g. 1, 3, 5...):
    • From: 1, To: 9, Interval / Step: 2 $\rightarrow$ file_1.txt, file_3.txt, file_5.txt, file_7.txt, file_9.txt
    • From: 0, To: 20, Interval / Step: 5 $\rightarrow$ 0, 5, 10, 15, 20
  • Multiple Wildcards (*_*): http://site.com/season_*_episode_*.mp4
    • Configures Wildcard #1 (Season 1..2) and Wildcard #2 (Episode 1..3) to generate all 6 combination URLs via Cartesian product.
  • Bracket Range Syntax:
    • http://site.com/part_[01-20].zip (padded 01 to 20)
    • http://site.com/lesson_[1-15:2].mp4 (step 2: 1, 3, 5...)
    • http://site.com/archive_[a-z:2].tar (step 2: a, c, e...)

2. Text / URL List & File Ingestion

  • Paste bulk URL lists directly into the text area (one link per line).
  • Click Import TXT to load .txt files containing download links.
  • Automatically normalizes URLs, ignores blank lines, and detects file categories.

3. Webpage Link Sniffer & Recursive Subfolder Crawler

  • Recursive Directory Traversal: Crawls BDIX movie servers, TV series libraries, FTP open directories, Apache/Nginx auto-indexes, h5ai, and Alist instances to find all downloadable files nested within subfolders (e.g., Season 01/, Season 02/).
  • Configurable Crawl Depth: Set recursion depth from 1 to 5 levels with automated circular link protection.
  • Subfolder Filter & Quick Batch Selection: Filter scanned items by specific subfolders or use the "Select Folder" / "Deselect Folder" buttons to batch toggle seasons and folders.
  • Recreate Subfolders on Disk: Enable Recreate Subfolders on Disk to automatically create the exact remote directory structure on your local storage (e.g., saving Season 1/Episode 01.mkv into <DownloadFolder>/Season 1/Episode 01.mkv).
  • Site Credentials Vault Integration: Automatically injects stored Basic or Bearer authentication headers when scanning protected directory trees.
  • Category & Keyword Filtering: Instantly filter discovered links by category (Video, Audio, Document, Archive, Software) and probe remote file sizes in real time before downloading.

4. Resilient Ingestion & Live Registration Overlay

  • Live Ingestion Progress Overlay: Interactive progress bar and file counter during high-volume batch registrations to ensure fluid UI responsiveness.
  • Intelligent Filename Deduplication: Automatically detects and resolves filename collisions without overwriting existing files or downloads.
  • Batch Display Controls: Dedicated toggles for Save by file category, Show real time progress window, and Show completion window.

🌐 Browser Companion Extension

ThunderDM includes an official high-performance companion browser extension built with Manifest V3 for Chromium-based browsers (Chrome, Edge, Brave, Opera, Vivaldi, Arc) and Mozilla Firefox.

Chrome Web Store Firefox Add-on

Extension Highlights:

  • Automatic Interception: Captures browser downloads (chrome.downloads API) and direct file links (.zip, .rar, .iso, .exe, .mp4, etc.) and routes them to ThunderDM.
  • Smart Video Sniffer & Floating Badge: Renders an in-page floating download badge over detected video elements for instant one-click media capture.
  • Pass Browser Cookies Toggle: Option under Advanced Settings to forward session cookies for downloading private repository files and authenticated media.
  • Fallback In-Page Modal: Clean dialog offering native browser download fallback if the desktop client is offline.

πŸ‘‰ For complete extension documentation, build steps, and browser installation guides, please see the Extension README.


πŸ—οΈ Tech Stack & Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 ThunderDM Application Stack                 β”‚
β”‚                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                     Frontend                        β”‚   β”‚
β”‚   β”‚    React 19  β€’  TypeScript  β€’  Tailwind CSS v4      β”‚   β”‚
β”‚   β”‚    Vite  β€’  Lucide Icons  β€’  Wails v3 Runtime       β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                              β”‚ IPC Bindings                 β”‚
β”‚                              β–Ό                              β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                   Go Backend Engine                 β”‚   β”‚
β”‚   β”‚  β€’ Multi-Segment Downloader (Chunk Engine & Limiter)β”‚   β”‚
β”‚   β”‚  β€’ Recursive Web Link Crawler & Directory Sniffer   β”‚   β”‚
β”‚   β”‚  β€’ HLS Parser & yt-dlp Video Extractor              β”‚   β”‚
β”‚   β”‚  β€’ System Proxy, PAC Evaluator & SOCKS5 Routing     β”‚   β”‚
β”‚   β”‚  β€’ Queue Scheduler & Task Manager                   β”‚   β”‚
β”‚   β”‚  β€’ Pure SQLite Database Engine (modernc.org/sqlite) β”‚   β”‚
β”‚   β”‚  β€’ Encrypted Vault Storage                          β”‚   β”‚
β”‚   β”‚  β€’ Local REST Server (Port 37555 for Extension)     β”‚   β”‚
β”‚   β”‚  β€’ System Tray, Single-Instance & Autostart         β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Getting Started & Development

Prerequisites

  • Go: v1.25 or higher (Download)
  • Node.js: v18 or higher (Download)
  • Wails CLI: v3.0.0-beta or higher (go install github.com/wailsapp/wails/v3/cmd/wails3@latest)
  • Task Runner (Optional): Taskfile (go install github.com/go-task/task/v3/cmd/task@latest)

Installation & Setup

  1. Clone the repository:

    git clone https://github.com/showayebDev/ThunderDownloadManager.git
    cd ThunderDownloadManager
  2. Install frontend dependencies:

    cd frontend
    npm install
    cd ..
  3. Install Go dependencies:

    go mod tidy

Running in Development

Start the development server with live reload and Vite hot-reloading:

# Using Task
wails3 dev

# Or directly with Wails v3
wails3 dev -config ./build/config.yml -port 9245

Building Production Binaries

Build production packages for your operating system:

# Build for current host platform
wails3 task build

# Create platform installer/package
wails3 task package

Building the Browser Extension

Build the Chrome and Firefox extension packages (dist/ output):

wails3 task ext
# or run directly:
node extension/build.js

πŸ“‘ Desktop Integration Protocol

ThunderDM runs a lightweight internal HTTP server on port 37555 (with fallback ports 57211 and 9988) to receive download jobs from the browser extension and CLI tools:

  • Add Download Task: POST http://127.0.0.1:37555/add
  • Health & Integration Check: GET http://127.0.0.1:37555/health

πŸ“œ Taskfile Commands Reference

Task Command Description
wails3 dev Runs the application in development mode with live reload.
wails3 task build Compiles the production binary for the current OS.
wails3 task package Packages a single universal production installer for Windows.
wails3 task package:all:platforms Cross-compiles packages for Windows, macOS (Universal), and Linux.
wails3 task ext Builds unpacked directories and ZIP/XPI archives for Chrome & Firefox extensions.
wails3 task generate_icon Generates high-resolution application icons and platform icon sets.
wails3 task set:version VERSION=x.y.z Synchronizes application version across all platform config files.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

About

An ultra-fast, modern multi-threaded download manager with dynamic file segmentation, HLS m3u8 stream assembly, and smart browser integration. Built with Go, Wails v3, and React 19.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages