InstaLoader
CLI tool to download Instagram posts, stories, reels, profiles, and metadata. Written in Python. Can download public profiles without login; private profiles require authentication.
Install
pip install instaloader
# or
pipx install instaloaderUsage
# Download a public profile (posts + metadata)
instaloader <username>
# Download a single post by URL
instaloader -- -https://www.instagram.com/p/SHORTCODE/
# Stories (requires login)
instaloader --login <your_username> --stories <username>
# Highlights
instaloader --login <your_username> --highlights <username>
# Reels only
instaloader --post-filter "is_video" <username>
# Tagged posts
instaloader --tagged <username>
# Save to a specific directory
instaloader --dirname-pattern "/data/instagram/{profile}" <username>
# Only new posts (skip already downloaded)
instaloader --fast-update <username>Login (for private profiles / stories)
instaloader --login <your_username>
# Saves session to ~/.config/instaloader/session-<username>
# Subsequent runs reuse the session automaticallyFile naming
Default pattern: {date_utc}_UTC_{shortcode} for posts.
Customizable with --filename-pattern:
--filename-pattern "{date:%Y-%m-%d}_{shortcode}"Metadata
Each post downloads:
- Image/video file
.json.xzwith post metadata (caption, likes, comments, etc.).txtwith caption