Skip to main content
Deep Dive & Recovery Playbook

What is an .aria2 File?
Architecture, Resuming & Recovery

The complete guide to aria2 control files: what they are, why they appear next to your downloads, how multi-connection resume works, the on-disk binary layout, and exactly how to recover a partial download — with an in-browser inspector.

Last reviewed 2026-09 · aria2 v1.37.0

An .aria2 file is a small binary control file that aria2 writes next to an in-progress download (for example ubuntu.iso.aria2 beside ubuntu.iso). It records which pieces have already been verified on disk, so aria2 can open many parallel connections and resume from the exact byte after a crash, reboot or network drop. When the download reaches 100% and passes its integrity check, aria2 deletes it automatically.

What it is — and what it is not

It is…

  • A binary progress/control file for one incomplete download
  • Safe to keep — it is what lets aria2 resume
  • Paired with a real target file of the same name minus the extension
  • Recreated automatically when you restart aria2

It is not…

  • Your downloaded file (it has no useful content you can open)
  • A corrupted media/document file you can repair or convert
  • Convertible to MP4/ZIP — you finish the download instead
  • A virus by itself — but see the safety notes below

The naming rule

The control file is just the target name with .aria2 appended:

ubuntu-24.04.iso.aria2 → target ubuntu-24.04.iso
movie.mkv.aria2 → target movie.mkv
big-archive.zip.aria2 → target big-archive.zip

What the control file actually does

Three jobs, all in a few kilobytes of metadata.

Pieces, not bytes

aria2 splits every file into fixed-size pieces and keeps a bitfield: bit 1 = that piece is present and verified on disk; bit 0 = still missing. This is what allows up to 16 parallel connections without corrupting the file.

Exact, zero-loss resume

After a power cut, crash or Wi-Fi drop, aria2 reloads the bitfield and re-downloads only the missing pieces — never from 0%.

Automatic cleanup

When every piece is present and the checksum passes, aria2 unlinks the .aria2 file, leaving only your finished file.

Online .aria2 File Header Inspector

Inspect a .aria2 control file locally in your browser — see the target size, piece size and how many chunks are already verified. Nothing is uploaded; the file never leaves your device.

Drop an .aria2 control file here to inspect

Or click to select from your local drive

This is a best-effort reader for the common aria2 control-file (version 1) layout. Keep the original file untouched; the inspector only reads a copy.

Under the hood: the binary layout

Structure of an aria2 control file (version 1, big-endian), as documented in aria2’s technical notes. H = 10 + info-hash length, so H is 10 for HTTP/FTP downloads and 30 for BitTorrent. The inspector above reads exactly these fields.

Byte offset Type Field Meaning
0x00–0x01 uint16 version Format version. aria2 writes version 1.
0x02–0x05 uint32 extension Extension flags. If the lowest bit is set, aria2 checks that the saved info hash matches the download.
0x06–0x09 uint32 info hash length Length of the info hash that follows: 20 for BitTorrent, 0 for HTTP/FTP.
0x0A…H−1 bytes info hash SHA-1 BitTorrent info hash (absent for HTTP/FTP downloads).
H…H+3 uint32 piece length Size of each piece (e.g. 1048576 = 1 MiB).
H+4…H+11 uint64 total length Total size of the target file in bytes.
H+12…H+19 uint64 upload length Bytes uploaded so far (BitTorrent).
H+20…H+23 uint32 bitfield length Length of the bitfield in bytes.
H+24… bitfield piece bitfield One bit per piece: 1 = complete on disk, 0 = missing.
after bitfield records in-flight pieces Count of partially downloaded pieces, then for each: index, length and a bitfield of 16 KiB blocks.

You never need to edit this file by hand. It exists purely so aria2 can reason about your partial download.

Download recovery playbook

Six real scenarios and the exact commands. In every case, keep the incomplete target file and its .aria2 file together.

A. Normal interruption (power cut or network drop)

Keep ubuntu.iso and ubuntu.iso.aria2 in the same folder, then just add -c (continue):

$aria2c -c -x 16 -s 16 https://releases.ubuntu.com/24.04/ubuntu-24.04.iso

B. The signed download URL has expired

Cloud hosts (Google Drive, 1Fichier, etc.) use short-lived signed links. As long as the size and piece layout match, aria2 can continue a download from a brand-new URL:

  1. Get a fresh URL for the same file from your browser.
  2. Make sure the partial file and its .aria2 file share the target name (e.g. target.zip + target.zip.aria2).
  3. Run aria2c -c -o "target.zip" "FRESH_URL".

aria2 re-attaches to the existing bitfield and continues. If the server cannot serve the missing byte ranges, it restarts — that is expected, not a bug.

C. Suspected disk corruption — verify every piece

Force aria2 to re-check what is already on disk before downloading the rest:

$aria2c -c --check-integrity=true -s 16 https://example.com/file.tar.gz

D. Resume in a GUI (Motrix, AriaNg, Aria2App)

GUI frontends do exactly the same thing: open the app, re-add the same download (same URL and output name), and it continues from the existing pieces. You can also just restart aria2 with --save-session/--input-file configured and it resumes automatically. See the GUI list or use our online WebUI.

E. Moving a partial download to another machine

  1. Copy both the partial target file and the .aria2 file, keeping the same names.
  2. On the new machine, run the same command (with -c) or load the session.
  3. aria2 verifies the existing pieces and continues.

F. BitTorrent / magnet downloads

Torrents use the same control file (file.torrent.aria2 or a name derived from the info hash). While you are seeding a finished torrent, the .aria2 file stays — that is normal. Stop seeding (seed-ratio/seed-time reached, or remove the task) and aria2 removes it.

Is it safe to delete the .aria2 file?

When deleting the control file is fine, and when it costs you the download
Your goalDelete the .aria2 file?Result
Finish/resume the downloadNoDeleting it forces aria2 to restart from 0%.
Cancel and discard the partial fileYesDelete both files; the download is abandoned.
Download is already 100% completeNot neededaria2 removes it automatically (unless seeding).
Media player says the file is corruptNoThe file is incomplete — resume instead of deleting.

Safety rules

  • Never reuse one .aria2 file for a different file — its bitfield would not match and can corrupt the result.
  • Don't rename the target file without renaming the control file (and vice-versa) — they must share the name.
  • Treat a .aria2 file from an untrusted source the same as any unknown download: it is metadata, but you cannot inspect its origin the way you can a file you fetched yourself.

.aria2 vs other incomplete-file formats

Why a piece-level bitfield resumes better than a linear temp stream.

Comparison of temporary/control files across downloaders
Downloader Temp file Multi-connection Resume granularity
aria2 .aria2 Yes (up to 16/host) Exact piece level
Chrome / Edge .crdownload No (single stream) Linear offset only
Firefox .part No (single stream) Linear offset only
Internet Download Manager IDM_*.tmp Yes (up to 32) Proprietary re-assembly

Troubleshooting

The .aria2 file is not deleted after 100%

Usually because BitTorrent seeding is still active (aria2 keeps the control file while seeding), or the integrity check has not passed. Stop seeding or remove the task and aria2 cleans it up. If the data is not sealed, run aria2c -c --check-integrity=true against the target.

The download restarts from 0% every time

The control file is missing, in the wrong folder, renamed, or does not match the target. Keep file.ext and file.ext.aria2 together and run with -c. Ensure the output name (-o) is identical across runs.

"File is corrupt" when I open the partial file

It is simply incomplete. The .aria2 file existing means aria2 has not finished writing all pieces. Resume the download; once complete, the file is valid and the control file disappears.

I see many .aria2 files

Each incomplete download has its own control file. A torrent may leave several. Complete or cancel each task to clean them up; do not delete a control file you still intend to resume.

Frequently asked questions

Why did my video or zip download appear as .aria2?

It didn't. Your real file (e.g. movie.mp4) sits next to the control file movie.mp4.aria2. Opening the .mp4 while the .aria2 file is present shows "corrupt" because some chunks have not been written yet.

Can I convert an .aria2 file to MP4 or ZIP?

No. The .aria2 file contains no media or document data — only progress metadata. Finish the download with aria2, Motrix, AriaNg or the WebUI; then the real .mp4/.zip is complete and the control file is deleted.

What if I accidentally deleted the .aria2 file?

aria2 lost the map of verified pieces, so the next run starts from 0%. If the partial data is intact you can sometimes recover with --check-integrity=true, but otherwise the download restarts.

Can I open or edit the .aria2 file?

It is binary, not text. You don't need to open it; use the inspector above to read its key fields, or let aria2 manage it.

Where does aria2 write the control file?

In the download directory (--dir), next to the target file. Renaming or moving one without the other breaks resume.

Does aria2 keep the .aria2 file while seeding?

Yes. While a torrent is seeding, aria2 keeps the control file so it can track and verify pieces. It is removed once seeding ends or the task is removed.

Related resources