A minimal HTTP download manager that works just fine.
- read URLs from a text file (one entry per line)
- control maximum number of concurrent downloads
- resume interrupted downloads if possible (using HTTP range)
- automatically retry re-establishing download in case of timeout or hanging connection
- multi progress bars (made with indicatif)
- native support for proxies and redirects
./dlm --help
Minimal download manager
Usage: dlm [OPTIONS] [URL]
Arguments:
[URL] Direct URL to download
Options:
-m, --max-concurrent <maxConcurrentDownloads>
Maximum number of concurrent downloads [default: 2]
-i, --input-file <inputFile>
Input file with links
-o, --output-dir <outputDir>
Output directory for downloads [default: .]
-u, --user-agent <userAgent>
User-Agent header to use
--random-user-agent
Use a random User-Agent header
--proxy <proxy>
HTTP proxy to use
-r, --retry <retry>
Number of retries on network error [default: 10]
--connection-timeout <connectionTimeoutSecs>
Connection timeout in seconds [default: 10]
-a, --accept <accept>
Accept header value
--accept-invalid-certs
Accept invalid TLS certificates
-h, --help
Print help
-V, --version
Print version
- Download single file
./dlm https://storage.com/my-file.zip- Download several files into current directory
./dlm --input-file ~/dlm/links.txt- With output directory and max concurrent download control
./dlm --input-file ~/dlm/links.txt --output-dir ~/dlm/output --max-concurrent 2Using the provided binaries in https://github.com/agourlay/dlm/releases
Using Cargo via crates.io.
cargo install dlm