insta-dl¶
Async command-line downloader for Instagram. Profiles, posts, reels, stories, highlights, hashtags, and comments — saved to disk with original timestamps preserved.
What it does¶
- Downloads profiles, hashtags, single posts, reels, stories, highlights, and comments.
- Preserves the original
taken_attimestamp as file mtime so Photos/Finder sort correctly. - Writes a JSON metadata sidecar next to every post (caption, like count, location, owner).
- Supports incremental updates with
--fast-updateand--latest-stamps. - Accepts profile names,
#hashtag, post shortcodes, and fullinstagram.comURLs. - Ships two interchangeable backends so you can pick how you authenticate.
Pick a backend¶
| hiker (default) | aiograpi (in development) | |
|---|---|---|
| Auth | API token | Instagram login + 2FA |
| Cost | Paid per request, 100 free requests to start | Free |
| Account ban risk | None | Real |
| Stability | High | Brittle |
Full breakdown on the Backends page.
Where to next¶
- Installation — set up Python, install the package, get a token.
- Basic usage — common workflows: download a profile, keep an archive in sync, grab a single post.
- CLI reference — every flag, every target form.
- Python API — use insta-dl as a library.
- Troubleshooting — auth errors, rate limits, schema drift.
Status¶
Alpha. Hiker backend is functional end-to-end (198 tests, 95% coverage). aiograpi backend is stubbed pending an upstream sync.
License & disclaimer¶
MIT-licensed. Not affiliated with Instagram or Meta. Use at your own risk and respect content creators.