InstaLoader
1 min read
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
sh
pip install instaloader
# or
pipx install instaloader
Usage
sh
# 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)
sh
instaloader --login <your_username>
# Saves session to ~/.config/instaloader/session-<username>
# Subsequent runs reuse the session automatically
File naming
Default pattern: {date_utc}_UTC_{shortcode} for posts.
Customizable with --filename-pattern:
sh
--filename-pattern "{date:%Y-%m-%d}_{shortcode}"
Metadata
Each post downloads:
• Image/video file
• .json.xz with post metadata (caption, likes, comments, etc.)
• .txt with caption