Repository navigation
Interrupting and resuming
Downloading a large profile can take hours. You can stop a download at any time and continue it later, and a download that Instagram breaks off can be continued too.
- Stopping a download
- Resume files
- Continuing a download
- What can be resumed
- Options
- Skipping a single item
- Resuming with Instaloader
Press Ctrl+C. The program does not stop immediately in the middle of writing a file: it finishes or cancels the current request, saves where it was, and exits:
[ 412/8123] instagram\2025-03-02_17-00-12_UTC.jpg ^C
Saved resume information to instagram\iterator_s8YiB9OL.json.xz.
Interrupted by user.
The exit code is 5. Files that were being downloaded at that moment are not left half-written under their final name: a download is written to a .temp file first and renamed when it is complete.
Ctrl+Break ends the program immediately, without saving resume information.
When a download of many posts stops early, because you pressed Ctrl+C, because of a connection error or because Instagram refused further requests, the position in the list of posts is saved in a resume file in the target's folder:
instagram\iterator_s8YiB9OL.json.xz
The eight characters after iterator_ identify the list. They are computed from the query that produced it (the profile and the kind of list) and the account you are logged in with, so the posts, the tagged posts and the reels of a profile each get their own resume file, and a download can only be resumed when you are logged in with the same account as before (or not logged in both times). The file contains Instagram's position marker and the number of posts already processed, but no downloaded data.
Resume files expire after 29 days, because Instagram's position markers do not stay valid forever. An expired file is ignored (Warning: Not resuming from ...: "Best before" date exceeded.) and the download starts from the beginning.
Run the same command again. The program finds the resume file and continues where it stopped:
Resuming from instagram\iterator_s8YiB9OL.json.xz.
[ 413/8123] instagram\2025-03-01_12-30-00_UTC.jpg ...
When the list is complete, the resume file is deleted (Iteration complete, deleted resume information file ...).
The other options do not need to be the same: you can, for example, add --no-videos or a filter when continuing. Only the target and the kind of list must match. If you continue with --fast-update, keep in mind that it stops at the first post that was downloaded before, which right after resuming may come quickly.
| Download | Resumable |
|---|---|
| Posts of a profile | Yes |
--tagged, --reels
|
Yes |
:saved |
Yes |
| Hashtags | Yes |
:feed, locations |
No; they start again from the newest post |
| Stories, highlights | No; they are short lists |
| Single posts, metadata files | No; there is nothing to resume |
For downloads that cannot be resumed, run the command again with --fast-update, which skips quickly over what was already downloaded.
| Option | Effect |
|---|---|
--no-resume |
Neither use existing resume files nor create new ones. Every download starts from the beginning. |
--resume-prefix PREFIX |
Name resume files PREFIX_XXXXXXXX.json.xz instead of iterator_XXXXXXXX.json.xz. Useful to keep separate resume files for different runs on the same folder. |
The two options cannot be combined.
When a request fails, it is retried a few times (see Rate limits and connections). While this happens, the message ends with [retrying; skip with ^C]:
JSON Query to graphql/query: HTTP error code 500. [retrying; skip with ^C]
Pressing Ctrl+C at this point skips just this item ([skipped by user]) and continues with the next one, instead of stopping the whole program. Press Ctrl+C again outside of a retry to stop.
The resume files have the same name and contents as Instaloader's. A download that was interrupted in InstaloaderSharp can be continued with Instaloader, and the other way round, as long as both use the same folder and the same --resume-prefix. See Interoperability with Instaloader.
Getting going
Downloading
- Choosing what to download
- Keeping an archive up to date
- Filtering posts and stories
- File and folder names
- Interrupting and resuming
- Rate limits and connections
Reference
- Command-line options
- Properties reference
- File formats
- Interoperability with Instaloader
- Differences from Instaloader
- Library use
- Troubleshooting and FAQ
- Glossary
Project