Backstory:
I kept finding myself drowning in terminal tabs - each running separate aria2c
download sessions, with no clean way to track progress or failures. The existing batch download solutions I found were either too bloated or didn’t handle the edge cases I cared about.
This runs on my homelab - I needed something headless.
So… I built my own script using aria2c
to do exactly what I wanted.
But why?
First of all: minimal footprint. I can integrate it once and forget about it - and that’s already enough reason for me.
But it’s also:
- Portable: Works anywhere Bash runs (local machines, remote servers via SSH)
- Self-cleaning: Removes completed and failed links from the list. Failed ones? I usually ignore - if they were important, they’d still be alive.
- Resource-aware: Enforces storage limits to prevent disk overload
The Solution
A 50-line Bash script that:
- Reads download links from a simple text file
- Processes them sequentially with
aria2c
- Cleans up completed/failed links
- Logs everything for debugging
Why Not Use “X”?
Like I said - minimal footprint. That’s enough for me.
But also, most alternatives failed my homelab test:
- GUI tools? Can’t run headless.
- Other batch scripts? Ignored storage limits or edge cases I cared about.
- Fancy download managers? Required 10x the config.
This script passes: one file, zero fuss.
If you run headless setups or just want downloads to “just work” - check it out.