⚠️

Currently Non-Functional - Instagram API Changes (August 2025)

Instagram has updated their security measures, blocking automated access. While authentication appears to work, the actual photo downloading is blocked with 401 errors. This affects all Instagram scrapers, not just IGScraper. Learn more →

Download Instagram Photos Fast. Smart. Beautiful.

Scrape entire Instagram profiles with concurrent downloads, smart rate limiting, and zero duplicates.

Quick Start (Currently Blocked by Instagram)

# Install with Homebrew
brew tap guitaripod/tap
brew install igscraper

# Run (will fail with 401 errors)
igscraper username
igscraper --tui
╭──────────────────────────────────────────────╮
   v2.0.0                      
╰──────────────────────────────────────────────╯

▸ Scraping: @guitaripod
▸ Profile:  1,337 photosPublic

Progress
╔══════════════════════════════════════════╗
║████████████████████████████████░░░░░░░░░░║
╚══════════════════════════════════════════╝ 78%

┌─────────────────┬─────────────────────────┐
│  Downloaded   │ 1044/1,337 photos     │
│  Speed        │ 25.1 photos/min      │
│  Time left    │ 11m 41s              │
│  Workers      │ 5 concurrent         │
│  Size         │ 2.61 GB              │
└─────────────────┴─────────────────────────┘

Status: ● Downloading high quality originals...
3x Faster
95% Test Coverage
0 Duplicates

Why IGScraper?

Built for nerds who need reliable Instagram data extraction

⚠️ Note: Currently blocked by Instagram's August 2025 API changes

🚀

Concurrent Downloads

3-5x faster with configurable worker pools

🛡️

Smart Rate Limiting

Avoid bans with intelligent request throttling

📁

Resume Support

Checkpoint system for interrupted downloads

How It Works

1

Get Credentials

Extract your Instagram session cookies from browser DevTools

IGSCRAPER_SESSION_ID="your_session"
IGSCRAPER_CSRF_TOKEN="your_token"
2

Configure

Set up via .env, YAML, or command line flags

download:
  concurrent: 5
  timeout: 30s
3

Run

Download with style using the TUI or simple progress bar

igscraper --tui username
# or quiet mode
igscraper -q username

Installation

📦 Arch Linux (AUR) Recommended for Arch

# Using yay
yay -S igscraper

# For development version
yay -S igscraper-git

🍺 Homebrew

brew tap guitaripod/tap
brew install igscraper

📦 Download Binary

# Intel Mac
curl -L https://github.com/guitaripod/igscraper/releases/latest/download/igscraper_Darwin_x86_64.tar.gz | tar xz
# Apple Silicon
curl -L https://github.com/guitaripod/igscraper/releases/latest/download/igscraper_Darwin_arm64.tar.gz | tar xz
sudo mv igscraper /usr/local/bin/

🛠️ Build from Source

git clone https://github.com/guitaripod/igscraper
cd igscraper
go build -o igscraper ./cmd/igscraper
sudo mv igscraper /usr/local/bin/

🐳 Docker

# Run with Docker
docker run --rm -v $(pwd)/downloads:/downloads \
  -e IGSCRAPER_SESSION_ID="your_session" \
  -e IGSCRAPER_CSRF_TOKEN="your_token" \
  ghcr.io/guitaripod/igscraper username

Configuration

Multiple ways to configure:

CLI Flags
Environment
YAML Config
# .igscraper.yaml
download:
  concurrent_downloads: 5
rate_limit:
  requests_per_minute: 60