A desktop application that provides a user-friendly graphical interface for downloading content from Instagram profiles using the Instaloader Python library.
If you find this tool useful, consider supporting development:
- Profile Downloads - Posts, stories, highlights, and profile pictures
- Saved Posts - Download your own saved posts collection with flexible organization
- Single Content - Download individual posts, reels, stories, or highlights via URL
- Anti-Detection - Highly configurable "Balanced" timing system to mimic human behavior
- 2FA Support - Full two-factor authentication support
- Unified Progress - Overall progress bar for all download modes
- Enhanced Stop - Immediate cancellation responsiveness during stays and retries
- Date Filtering - Download content within specific date ranges
- Live Preview - See downloaded content in real-time
- Dark Theme - Modern PyQt6 dark-themed interface
# Clone the repository
git clone https://github.com/marhensa/instaloader-gui-wrapper.git
cd instaloader-gui-wrapper
# Install dependencies
pip install -r requirements.txt
# Run the application
python run.pyDownload the latest release from Releases and run the executable for your platform.
- Login - Enter credentials or use a session file
- Choose Mode - Select between Target Profile, Saved Posts, or Single Content
- Set Parameters - Enter the target username or URL, and configure filters like date ranges, stories, or highlights
- Set Location - Choose the download directory
- Start - Click ▶ Start to begin the download process
| Type | Example URL |
|---|---|
| Profile | instagram.com/username |
| Post | instagram.com/p/ABC123 |
| Reel | instagram.com/reel/ABC123 |
| Story | instagram.com/stories/username/123456 |
| Highlight | instagram.com/stories/highlights/123456 |
Standard Downloads (Target Profile and Single Post):
downloads/
└── username/
├── profile_pic/
├── posts/
├── stories/
└── highlights/
Saved Posts Downloads (Default):
downloads/
└── saved_posts/
├── username1/
│ ├── 2024-01-01_UTC.jpg
│ └── ...
└── username2/
└── ...
Saved Posts Downloads (Single Folder):
downloads/
└── saved_posts/
├── username1_2024-01-01_UTC.jpg
├── username2_2024-01-02_UTC.jpg
└── ...
| Setting | Description | Default |
|---|---|---|
| Base Delay | Baseline time between requests | 3s |
| Random Jitter | Extra random time to appear human | 2s |
| Story Multiplier | Safety multiplier for stories/highlights | 1.5x |
| Long Pause | Range for random "session" breaks | 10-17s |
| Critical Wait | Recovery time after rate limits | 30min |
- Credentials are never stored in plain text
- Session files location:
- Windows:
%localappdata%\Instaloader\session-username - Linux/Mac:
~/.config/instaloader/session-username
- Windows:
- Delete session files on shared computers!
build.bat
# Output: dist/Instaloader-GUI-Wrapper.exeRequirements: python3, pip, binutils, fuse-libs, file
# Install dependencies (Ubuntu/Debian)
sudo apt update && sudo apt install -y python3 python3-pip binutils libfuse2 file
# Install dependencies (Fedora/RHEL)
sudo dnf install -y python3 binutils fuse-libs file
# Build
chmod +x build.sh
./build.shThis will produce:
dist/Instaloader-GUI-Wrapper(Executable)Instaloader-GUI-Wrapper-x86_64.AppImage(Portable AppImage)
pip install pyinstaller
pyinstaller --onefile --windowed --name "Instaloader-GUI-Wrapper" run.pyinstaloader-gui-wrapper/
├── run.py # Entry point
├── requirements.txt # Dependencies
├── build.bat # Build script
├── build.sh # Build script
├── downloads/ # Downloaded content
├── user-settings/ # User settings
└── src/
├── gui/ # UI components
├── core/ # Download logic
└── config/ # Settings
This tool is for personal use only. Respect Instagram's terms of service and copyright rules. Excessive downloads may trigger rate limiting. The developer is not responsible for misuse.
MIT License © 2026 @marhensa

