Belajar Aria2 - Metalink Download
Episode 10 of 23

Belajar Aria2 - Metalink Download

Pada episode ini kalian memahami konsep Metalink sebagai satu file yang merangkum banyak mirror dan checksum, memanfaatkan pemilihan mirror dan verifikasi otomatis, serta kombinasi download HTTP dan BitTorrent dalam satu file meta4.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 9 kalian mengandalkan swarm untuk menemukan sumber. Di episode-episode sebelumnya kalian memberikan daftar mirror secara manual lewat input file. Bagaimana jika ada format yang merangkum semua itu — mirror, checksum, bahkan torrent — dalam satu file yang dibaca langsung oleh aria2? Itulah Metalink, dan ini salah satu kekuatan terbesar aria2 yang jarang dipahami orang.

Intuisi sederhananya: kalian sudah tahu cara mengunduh dari banyak sumber. Metalink adalah cara mendeskripsikan banyak sumber itu secara terstruktur, lengkap dengan jaminan keutuhan data. Dalam dunia otomasi, file deskripsi seperti ini jauh lebih berharga daripada serangkaian flag ad hoc.

Metalink adalah format XML yang mendeskripsikan satu atau beberapa file beserta semua cara mendapatkannya. Dua varian yang beredar: .meta4 (Metalink versi 4, distandarkan dalam RFC 5854) dan .metalink (versi 3 yang lebih tua). aria2 membaca keduanya tanpa plugin tambahan.

debian-live-12.meta4
<?xml version="1.0" encoding="UTF-8"?>
<metalink xmlns="urn:ietf:params:xml:ns:metalink">
  <file name="debian-live-12.iso">
    <size>3584000000</size>
    <hash type="sha-256">4e3b7c2a9f1d5e6b8c7a1f2e3d4c5b6a7f8e9d0c</hash>
    <url>https://mirror1.example.com/debian-live-12.iso</url>
    <url>https://mirror2.example.com/debian-live-12.iso</url>
    <metaurl mediatype="torrent">https://mirror1.example.com/debian-live-12.iso.torrent</metaurl>
    <pieces length="1048576">
      <hash type="sha-1">a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0</hash>
    </pieces>
  </file>
</metalink>

Elemen kuncinya: url untuk mirror HTTP/HTTPS/FTP, hash untuk checksum seluruh file, pieces untuk checksum per potongan, dan metaurl untuk menunjuk ke torrent pendamping. Satu file deskripsi, banyak jalur menuju file yang sama.

Menjalankan aria2 dengan Metalink semudah memberinya path atau URL file-nya:

unduh-meta4.sh
aria2c debian-live-12.meta4
unduh-meta4-jarak-jauh.sh
aria2c -d /srv/iso https://mirror1.example.com/debian-live-12.meta4

Ketika yang diunduh adalah file .meta4, aria2 mem-parsing-nya secara otomatis (--follow-metalink aktif secara default) lalu membuat download untuk file di dalamnya. Semua mirror yang tersedia dipakai secara bersamaan — multi-source lintas server, bukan hanya lintas koneksi. Jika satu mirror mati atau lambat, aria2 cukup melirik mirror lain tanpa kalian campur tangan.

Note

Kontrol pemilihan mirror ada di tangan kalian lewat --metalink-location (preferensi lokasi server, misalnya id,us), --metalink-preferred-protocol (misalnya https), dan --metalink-enable-unique-protocol. Cocok untuk memaksa arah lalu lintas ke server tertentu demi kebijakan region atau harga bandwidth.

Verifikasi Checksum Otomatis

Inilah nilai jual terbesar Metalink. Ketika pieces menyediakan checksum per potongan, aria2 memvalidasi data selama download berlangsung — setiap chunk yang tiba dicek, dan chunk yang rusak diunduh ulang. Kalian tidak perlu menunggu file selesai untuk tahu bahwa file itu korup.

Bayangkan perbedaannya dengan HTTP biasa: di sana kalian harus mengunduh lalu mengecek hash secara manual, dan jika rusak, mengulang dari awal. Dengan Metalink ber-piece checksum, verifikasi menyatu dengan proses download. Untuk file besar seperti ISO, ini menghemat waktu yang sangat signifikan. Jika hanya hash seluruh file yang tersedia, verifikasi dilakukan saat file sudah tuntas — tetap otomatis, hanya tidak per-piece.

Untuk pemeriksaan ulang file yang sudah ada di disk, kombinasikan dengan --check-integrity (atau -V): aria2 memvalidasi lagi tanpa men-download ulang bila semua cocok.

Kombinasi HTTP dan BitTorrent

Metalink versi 4 bisa membawa torrent lewat elemen metaurl dengan mediatype="torrent". Di sinilah aria2 menunjukkan kemampuannya yang paling khas: ia mengunduh file yang sama melalui HTTP dan BitTorrent secara bersamaan.

unduh-gabungan.sh
aria2c -d /srv/iso --metalink-file=debian-live-12.meta4

Potongan data yang diperoleh dari mirror HTTP diunggah ke swarm, dan potongan dari peer ikut menambah kecepatan. Kedua sumber saling melengkapi — saat satu jalur lambat, jalur lain mengimbangi. Karena tiap potongan dijamin oleh checksum, tidak ada risiko mencampur data dari dua sumber yang berbeda. Ini adalah multi-source lintas protokol yang dipersembahkan oleh satu format deskripsi.

Unduh File Tertentu

Metalink bisa memuat banyak file dalam satu dokumen. Sama seperti di torrent, kalian bisa memeriksa daftarnya lalu memilih:

lihat-file-meta4.sh
aria2c --show-files release.meta4
pilih-file-meta4.sh
aria2c --select-file=1-3 release.meta4

Pola yang sama seperti episode 9: indeks terlihat lewat --show-files, pilihan lewat --select-file. Konsistensi antarmuka ini membuat episode ini terasa seperti merapikan apa yang sudah kalian pelajari.

Metalink sering diunduh dari URL, bukan dibaca dari disk. Ketika file .meta4 memuat URL relatif, aria2 perlu tahu titik acuannya — di sinilah --metalink-base-uri berperan. Misalnya dokumen metalink yang berisi <url>debian.iso</url> tanpa host bisa dilengkapi base URI:

base-uri.sh
aria2c --metalink-base-uri=https://mirror1.example.com/pub/ \
  release.meta4

Dengan base URI, URL relatif di dalam metalink terselesaikan menjadi alamat absolut dan download bisa berjalan tanpa mengedit file deskripsi. Praktis ketika metalink disalin antar direktori atau dihasilkan dari sistem manajemen konten.

Kapan sebaiknya memakai Metalink dibanding input file biasa? Pertimbangan utamanya adalah jaminan integritas dan multi-protokol:

  • Butuh checksum otomatis? Metalink membawa hash dan piece checksum, sehingga verifikasi menyatu dengan download — input file tidak.
  • Butuh gabungan HTTP dan torrent? Metalink merangkum keduanya dalam satu file; input file hanya berisi URL HTTP/FTP.
  • Ingin satu file per entitas? Satu .meta4 cukup untuk satu entitas dengan banyak mirror, lebih rapi daripada puluhan baris URL.
  • Tetap sederhana? Untuk daftar file biasa yang kebetulan punya banyak mirror, input file dari episode 6 tetap pilihan yang lebih ringkas.

Pada praktiknya keduanya saling melengkapi: input file untuk daftar besar, Metalink untuk entitas yang menuntut keandalan dan multi-protokol.

Penutup

Pada episode 10 ini kalian sudah memahami Metalink sebagai format deskripsi satu file yang merangkum banyak mirror, checksum, dan torrent; mengunduh dari .meta4 dengan pemilihan mirror lewat --metalink-location dan --metalink-preferred-protocol; menikmati verifikasi checksum otomatis selama download; dan menggabungkan HTTP dengan BitTorrent dalam satu proses.

Yang paling penting untuk dibawa pulang: Metalink mengubah keandalan dari "semoga beruntung" menjadi "terjamin" — sumber ganda membuat download tahan terhadap kegagalan server, dan checksum membuat data rusak terdeteksi sedini mungkin.

Di episode 11 berikutnya kita merapikan gudang: manajemen direktori dan nama file output, penanganan konflik nama, serta verifikasi integritas file besar. Sampai jumpa!

Belajar Aria2 - Metalink Download | Belajar Aria2