ind4skylivey/IG-saver-tools
πΈ Instagram Highlights & Stories Backup Tool - CLI with smart incremental backup, progress tracking, and 2FA support / You're not Zuckerberg's lab ratβescape the Meta maze.
Your Personal Instagram Backup Solution
Never lose your memories again.
Backup your Instagram highlights & stories with one simple command.
Fast β’ Secure β’ Open Source
Features β’ Quick Start β’ Demo β’ Usage β’ Roadmap β’ Contributing
π― Why IGsaver?
./run.sh # That's it! All your highlights backed up locally in seconds β‘
Performance:
β‘ Incremental Backup: Skip existing files
π 90% faster on subsequent runs
π― Batch Download: All at once
β±οΈ Stories: Before 24h expiration |
Security:
π Zero password storage
π‘οΈ 2FA Support built-in
πΎ 100% Local storage
π Open Source code |
Customization:
π YAML Configuration files
π Advanced Filters (date/type/size)
π» CLI with 15+ options
π Detailed reports & stats |
v2.0.0 Roadmap:
π₯οΈ Desktop App (Win/Mac/Linux)
π
Scheduled Auto-backups
βοΈ Optional Cloud Sync
π Analytics Dashboard |
Note: Live screenshots and demo GIF coming soon! The tool is fully functional and tested.
π What You Get
π backups/
βββ π± your_username/
βββ πΈ highlights/
β βββ π Travel_2024/
β β βββ π¬ 2024-01-20_01-56-19_UTC.mp4 (15.2 MB)
β β βββ π¬ 2024-02-05_13-27-04_UTC.mp4 (23.8 MB)
β β βββ π· 2024-03-10_08-15-30_UTC.jpg (2.1 MB)
β β βββ π metadata.json
β βββ β€οΈ Family_Moments/
β β βββ π« 25 items backed up
β βββ β Best_Memories/
β βββ π« 18 items backed up
βββ πͺ stories/ (if --stories flag used)
βββ π« Active stories (before 24h expiration)π₯οΈ Example Terminal Output
$ ./run.sh
==================================================
Instagram Highlights Backup Tool
==================================================
Loading saved session for your_username...
β Session loaded successfully
Processing highlights: 100%|ββββββββββββ| 15/15 [02:30<00:00]
π Travel 2024
β 12 items, 0 failed
π Family Moments
β 25 items, 1 failed
============================================================
BACKUP SUMMARY
============================================================
Target: your_username
Duration: 2m 35s
Highlights:
β Downloaded: 15
β Skipped: 0
β Total found: 15
Items:
β Downloaded: 134
β Skipped (already exist): 0
β Total: 134
Downloaded: 2.1 GB
β BACKUP COMPLETED SUCCESSFULLY
============================================================π Quick Start
- Create virtual environment (optional but recommended):
python3 -m venv venv
source venv/bin/activate- Install dependencies:
pip install -r requirements.txt- (Optional) Configure username:
cp .env.example .env
# Edit .env with your Instagram username (optional)Usage
Basic Usage
Download your highlights (with incremental backup):
./run.shDownload active stories (24h):
./run.sh --storiesDownload from another user:
./run.sh usernameForce re-download everything:
./run.sh --forceAdvanced Options
# Custom output directory
./run.sh -o /backup/location
# Quiet mode (minimal output)
./run.sh -q
# Verbose mode (debug info)
./run.sh -v
# Disable progress bars
./run.sh --no-progress
# See all options
./run.sh --helpConfiguration File (Optional)
Create config.yaml to customize behavior:
download:
only_videos: false # Download only videos
only_photos: false # Download only photos
min_date: 2024-01-01 # Download from this date
max_date: null # Download until this date
filters:
exclude_patterns: [] # Skip items matching patterns
min_size_mb: null # Minimum file sizeSee config.example.yaml for all options.
Project Structure
IGsaver/
βββ src/
β βββ main.py # Entry point
β βββ app.py # Main application orchestrator
β βββ auth.py # Authentication & session management
β βββ downloader.py # Download logic
β βββ config.py # Configuration management
β βββ logger.py # Logging setup
β βββ ui.py # User interface & output
β βββ exceptions.py # Custom exceptions
β βββ constants.py # Constants and configuration
βββ igsaver.py # Convenience entry point
βββ backups/ # Downloaded backups stored here
βββ .sessions/ # Session tokens (excluded from git)
βββ logs/ # Process logs
βββ requirements.txt # Python dependencies
βββ .env # Credentials (not included in git)
βββ .env.example # Configuration example
Architecture
The project follows Clean Code principles:
- Separation of Concerns: Each module has a single responsibility
- Type Hints: All functions are properly typed
- Dependency Injection: Components receive dependencies
- Custom Exceptions: Proper error handling with specific exceptions
- Logging: Comprehensive logging for debugging and monitoring
- UI Separation: Business logic separated from presentation
Security
3-Layer Authentication System:
-
Session Tokens (primary method)
- First time: Login with password
- Instaloader saves a session token in
.sessions/ - Subsequent uses: Token is used automatically
-
Interactive Prompt (fallback)
- If no session exists or expired
- Asks for password securely using
getpass - Password is never displayed or saved
-
Zero Password Storage
- β Encrypted session tokens (renewable)
- β Passwords only in temporary memory
- β Passwords are NEVER saved to files
Other considerations:
- If you have 2FA enabled, consider disabling it temporarily
- Instagram may rate-limit requests if you download too much at once
- Session tokens are stored in
.sessions/(excluded from git)
πΊοΈ Roadmap
See our complete ROADMAP.md for detailed plans!
Current Status: v1.0.0 β
- Advanced CLI with 15+ options
- Smart incremental backup (90% faster!)
- Download highlights & stories (24h)
- Visual progress bars
- Comprehensive reports
- YAML configuration
- 2FA support
Coming in v2.0.0 π
- π₯οΈ Desktop App (Windows, Mac, Linux)
- π Scheduled Backups (Automatic daily sync)
- βοΈ Cloud Sync (Optional backup to cloud)
- π Analytics Dashboard (Visualize your content)
- π¨ Modern GUI (Dark/Light themes)
- π Notifications (Desktop alerts)
π€ Contributing
We love contributions! Whether it's:
- π Bug reports
- π‘ Feature requests
- π Documentation improvements
- π§ Code contributions
- π¨ UI/UX design for desktop app
Check out CONTRIBUTING.md to get started!
Special call: We're planning a desktop app! If you have experience with Electron, Tauri, or PyQt, we'd love your input via Issues.
β Show Your Support
If IGsaver helped you backup your precious memories:
- β Star this repo to show your support
- π¦ Share on social media to help others discover it
- π Tell your friends who might need it
- π€ Contribute to make it even better
π License
MIT License - feel free to use, modify, and distribute!
See LICENSE for full details.
π Acknowledgments
Built with:
- Instaloader - Instagram API wrapper
- tqdm - Progress bars
- Love for preserving memories β€οΈ











