DropDeck
Work through a whole list of downloads at once, politely, without any site cutting you off.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get DropDeck
Work through a whole list of downloads at once, politely, without any site cutting you off.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Reaches only what you point it at
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DropDeck is included in every plan along with the rest of the range.
The throttle is the entire point
DropDeck holds each host to a bytes-per-second budget using a real token bucket, consumed inside the read loop on the response body. Not a sleep between files, not an average worked out afterwards. A 2 MB file at --rate 500000 takes about 4.2 seconds and there’s no arrangement of flags that makes it take less.
Per host, and shared within a host
Two hosts at 500 KB/s each move roughly 1 MB/s in total, independently. Four files from one host at 500 KB/s finish in about the same total time whether you allow one connection or four. Raising --per-host-concurrency changes the interleaving, never the promise you made to that server.
Before it writes anything
fetch is a dry run unless you pass --apply. It prints every URL, the file it would write, what’s already on disk, and the per-host grouping. The output directory isn’t even created.
Re-running costs almost nothing
A HEAD request compares the server’s size against the local file, and matching files are skipped. Mismatched ones are re-fetched, which makes a re-run a decent repair pass over a half-populated directory.
One 404 doesn’t sink the batch. There’s no resume, though: an interrupted file restarts from zero. DownloadPilot is the sibling that resumes.
Reading on the job itself
- How to download a large file without it arriving corrupt Check the hash the publisher printed. Resuming a download is safe as long as the server confirms the file h...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the batch-fetch engine: download a whole manifest of URLs with a genuine per-host token-bucket rate limiter and per-host concurrency caps, so a big playlist can't get you throttled. Measured against a local server, a 2 MiB file capped at 500 KB/s took 4.20s versus a predicted 4.19s, and 0.011s uncapped. Browser integration and segmented multi-connection downloads are on the roadmap.
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: DropDeck. Rename completely.
What it draws on
Existing paid software whose best ideas shaped this program: Internet Download Manager, WinRAR, Bandizip Professional, NetLimiter.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
dropdeck 1.0.0 - Smart Download Manager (batch / manifest edition)
Downloads a whole manifest of URLs at once, with a real per-host token-bucket
rate limiter and a per-host concurrency cap, so a big media playlist does not
get you throttled or banned.
USAGE
dropdeck fetch <manifest.txt> --out <dir> [options]
dropdeck plan <manifest.txt> [--json]
dropdeck help | -h | --help
dropdeck version
COMMANDS
fetch Download every URL in the manifest into --out.
DRY RUN BY DEFAULT: prints the plan and writes nothing.
Pass --apply to actually download.
plan Group the manifest URLs by host and show per-host counts.
FETCH OPTIONS
--out <dir> Destination directory (required).
--rate <bytes-per-sec> Rate limit PER HOST, in bytes/sec. 0 = unlimited
(default). Accepts k/m/g suffixes (1024-based),
e.g. --rate 500000, --rate 512k, --rate 2m.
--per-host-concurrency <n> Max simultaneous downloads per host (default 2).
--timeout <seconds> Per-request response-header timeout (default 30).
--apply Actually download. Without it, nothing is written.
PLAN OPTIONS
--json Emit machine-readable JSON instead of a table.
MANIFEST FORMAT
One URL per line. Blank lines are ignored. Lines whose first non-space
character is '#' are comments. Trailing whitespace is trimmed.
BEHAVIOUR
* Each file is written to "<name>.part" and renamed to "<name>" only after a
complete, successful transfer. A failed transfer leaves no .part behind.
* A file that already exists locally with the same size the server reports is
SKIPPED, so re-running the same fetch is idempotent and cheap.
* One failing URL (404, connection refused, ...) does not stop the others.
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan