Pada episode ini kita akan menghubungkan aria2 dengan dunia sekitarnya: membangun download center pribadi dengan AriaNg dan ekstensi browser, berinteroperasi dengan tool download lain, serta mengotomasi verifikasi checksum dan pemindahan file untuk download besar di server.

Di episode 20 aria2 berdiri sebagai daemon produksi — tetapi daemon yang kesepian adalah daemon yang setengah berguna. Episode 21 ini menghubungkannya dengan ekosistem: web UI AriaNg sebagai layar kendali, ekstensi browser sebagai pintu masuk URL, interoperabilitas dengan tool download lain, serta alur kerja modern di server — verifikasi checksum dan pemindahan file otomatis. Di akhir episode kalian punya download center pribadi yang utuh.
AriaNg adalah web UI modern yang berbicara ke daemon lewat RPC. Ia bukan server — ia klien yang menampilkan status, antrean, dan opsi download dalam satu halaman. Karena murni statis, kalian bisa menjalankannya dari mana saja: dibuka langsung sebagai file, disajikan nginx, atau sudah terbundel dalam image wappjzdstar/aria2 dari episode 20.
Alur kerja lengkapnya menjadi:
Perhatikan pembagian peran: aria2 yang melakukan, AriaNg yang menampilkan. Memahami batas ini penting — ketika UI tidak menampilkan sesuatu, masalahnya hampir selalu di koneksi RPC atau sekret, bukan di daemon.
Tip
AriaNg hanya butuh alamat RPC dan sekret untuk terhubung: http://localhost:6800/jsonrpc dengan sekret token:RAHASIA. Jika AriaNg menampilkan error koneksi, periksa sekret dulu, lalu firewall port 6800 — dua penyebab ini mencakup hampir semua kasus.
Gaya paling praktis memakai download center: saat menemukan file di browser, klik satu tombol dan URL langsung terkirim ke daemon. Ini cara kerja ekstensi seperti Aria2 Explorer di Chrome dan Chromium serta ekstensi sejenis di Firefox — mereka mengintersepsi download browser lalu meneruskannya ke RPC.
Keuntungannya besar: browser tidak lagi menangani file besar yang rawan terputus saat laptop tidur, dan daemon yang selalu menyala yang menyelesaikannya. Untuk pengguna yang tidak suka ekstensi, alternatifnya sederhana — tempel URL ke AriaNg secara manual, atau tulis ke file input:
printf '%s\n' \
"https://cdn.example.com/dataset.zip" \
"https://mirror.example.com/os.iso" > /tmp/queue.txt
aria2c -i /tmp/queue.txt --dir=/srv/downloadsFile input dari episode 6 menjadi format interoperable: kalian bisa membangun daftar URL dari skrip, spreadsheet, atau bookmark, dan daemon memakannya apa adanya.
aria2 sering menjadi engine di balik tool lain. Motrix, misalnya, adalah download manager desktop yang dibangun di atas aria2 — kalian membuka GUI-nya untuk kenyamanan, sementara mesinnya tetap aria2. Ini pola yang berharga: antarmuka boleh berganti, mesin tetap sama.
Sebaliknya, jika kalian pindah dari tool lain, daftar URL biasanya bisa diekspor dan diimpor:
| Tool | Bagaimana bergabung dengan aria2 |
|---|---|
| wget atau curl | URL diambil dari history atau skrip, dimasukkan ke input file |
| GUI download manager | Link list diekspor sebagai teks, lalu aria2c -i |
| yt-dlp | Diarahkan memakai aria2 sebagai downloader (lihat bagian berikut) |
| Motrix | Sudah berbasis aria2 — RPC bisa diarahkan langsung |
--input-file adalah format jembatan: hampir semua tool bisa menghasilkan daftar URL teks, dan aria2 menerimanya tanpa ubahan.
Skenario yang paling sering di dunia nyata: dataset riset, mirror distro, atau video berukuran besar harus diunduh di server — bukan di laptop. Prinsipnya sama seperti sejak episode 1, ditambah dua disiplin: verifikasi dan pemindahan otomatis.
File besar dari internet hampir selalu disertai checksum yang diterbitkan sumbernya. aria2 bisa memverifikasinya secara native begitu download selesai:
aria2c --checksum=sha-256=4d5f...9a1c \
https://cdn.example.com/dataset.zipFormatnya sha-256=HASH. Jika hasil verifikasi tidak cocok, download dianggap gagal dan aria2 keluar dengan exit code 32 (dari episode 18). Inilah jaring pengaman terbaik untuk file yang akan dipakai sebagai input pipeline — jauh lebih baik daripada menemukan korupsi di tengah proses.
Setelah file turun dan terverifikasi, ia harus pindah ke tempat final. Gabungkan verifikasi dengan hook --on-download-complete dari episode 18 menjadi satu skrip:
#!/usr/bin/env bash
GID="$1"
NUM_FILES="$2"
FILE_PATH="$3"
DEST="/srv/data/datasets"
if sha256sum --status -c "sha256sums.txt"; then
mv "$FILE_PATH" "$DEST/"
echo "$(date +%F_%T) OK: $GID -> $DEST" >> /var/log/dataset.log
else
echo "$(date +%F_%T) GAGAL: $GID" >&2
fiAlur ini meniru cara repo besar seperti distro Linux mengelola mirror: download, verifikasi, baru pindahkan ke lokasi yang dikonsumsi user lain. File yang belum terverifikasi tidak pernah sampai ke tangan pemakainya.
Untuk mirror yang diperbarui berkala, jadwalkan skripnya lewat cron. Skrip sama seperti pola di episode 18 — membaca exit code dan mencetak log — hanya sekarang dijalankan setiap hari:
0 2 * * * /opt/mirror/sync.sh >> /var/log/mirror.log 2>&1Pada pukul 02.00 setiap hari, server memeriksa daftar URL, mengunduh yang berubah, memverifikasi checksum, memindahkan file final, dan mencatat semuanya ke log. Tidak ada yang perlu menunggu atau mengingat. Untuk video dari platform streaming, ingat bahwa aria2 tidak bisa mem-parsing halaman web — di sanalah peran yt-dlp yang akan kita bandingkan di episode 22.
Episode 21 menghubungkan aria2 dengan ekosistemnya: membangun download center pribadi dengan AriaNg dan ekstensi browser, memakai file input sebagai jembatan interoperabilitas dengan tool lain, serta mengotomasi alur download besar di server dengan verifikasi checksum dan pemindahan file.
Inti yang harus dibawa pulang: download bukan tujuan, melainkan tahap dalam alur kerja. File yang turun tanpa verifikasi dan tanpa tujuan hanyalah sampah di disk — file yang terverifikasi dan terpindahkan otomatis adalah aset yang bisa dikonsumsi pipeline berikutnya.
Di episode 22 — episode terakhir — kita akan menutup seluruh perjalanan: ekosistem alternatif dan refleksi akhir dari 23 episode Belajar Aria2. Sampai jumpa!