⬇️Download Manager
LibraryDownload Managerv4.16.0RustSource-available
Snatch
A fast download manager for Linux — GTK4
Read the full case studyKey Facts & Overview
Snatch is a download manager for Linux with a native GTK4 / libadwaita interface. It splits each file into 16 parts and grabs them in parallel, resumes after connection drops, and handles torrents, site video, image galleries, and whole-site grabs — all from one window. A browser bridge catches downloads before the browser starts them, carrying your cookies along.
- ›Splits each file into 16 parts and resumes exactly where it left off after a dropout.
- ›Drives aria2, librqbit, yt-dlp, gallery-dl, ffmpeg, Wget2 and 7-Zip as separate, unprivileged processes.
- ›Never runs sudo itself — only the one-time install script asks for your password.
- ›Talks over a local Unix socket, so any program can queue jobs into the running app.
Core Architectural Features
16-way multi-part downloads via aria2
Built-in torrent engine (librqbit) with sequential play
Video / audio & gallery scraping (yt-dlp, gallery-dl)
Whole-site grabs with Wget2
Native GTK4 / libadwaita interface
Browser extension bridge (snatch-nmh)
Checksum verification & auto-extract archives
Scheduled, throttled & proxy-aware downloads
Installation
curl -fsSL https://raw.githubusercontent.com/ayoubzulfiqar/snatch-dl/main/get.sh | sh
# Skip the extra tools
curl -fsSL https://raw.githubusercontent.com/ayoubzulfiqar/snatch-dl/main/get.sh | sh -s -- --no-extras
# Or a package
sudo apt install ./snatch-dl_4.16.0-1_amd64.deb # Debian, Ubuntu, MintUsage
SOCK=~/.local/share/snatch-dl/snatch.sock
# A normal download
printf '{"url":"https://example.com/file.iso"}\n' | nc -U "$SOCK"
# A magnet link
printf '{"url":"magnet:?xt=urn:btih:..."}\n' | nc -U "$SOCK"
# A video
printf '{"kind":"video","url":"https://example.com/watch?v=..."}\n' | nc -U "$SOCK"
# A gallery
printf '{"kind":"scrape","url":"https://example.com/user/gallery"}\n' | nc -U "$SOCK"
# Response: {"ok":true,"gid":"..."} or {"ok":false,"error":"..."}API Reference
{ "url": "<file-url>" }Send a normal download job over the Unix socket.
{ "kind": "video", "url": "<page-url>" }Queue a video / audio extraction job (yt-dlp).
{ "kind": "scrape", "url": "<page-url>" }Queue a gallery / page-scrape job (gallery-dl).
{ "url": "magnet:?xt=..." }Queue a torrent by magnet link (librqbit).