Keeping a track of instagram followers and following can be tricky, insta insights is an open source comprehensive tool for analysing your Instagram follower relationships. Discover who follows you back, who doesn't, and track changes over time with detailed visualisations and reports locally with no sign in required.
- Features
- Quick Start
- Getting Your Instagram Data
- Usage Guide
- Understanding Your Results
- Project Structure
- Technical Details
- Contributing
- License
- Disclaimer
- Troubleshooting
- Roadmap
- Acknowledgements
- Live Demo
- Non-Followers: See who you follow but doesn't follow you back
- Unrequited Followers: Find followers you haven't followed back
- Mutual Followers: Identify your mutual connections
- Visual Summaries: Pie charts showing your follower breakdown
- Snapshot System: Save and compare follower data over time
- Change Tracking: Monitor follower gains/losses between snapshots
- Multiple Export Formats: Export data as CSV or TXT files
- Dual Interface: Both GUI (Streamlit) and CLI versions available
- 100% Local Processing: All analysis happens on your device
- No Data Upload: Your Instagram data never leaves your computer
- Secure: No login required, works with Instagram's official data export
- Python 3.11 or higher
- Your Instagram data export (see Getting Your Data below)
-
Clone the repository
git clone https://github.com/Eusha425/insta-insights.git cd insta-insights -
Install dependencies
pip install streamlit matplotlib pandas
-
Run the application
GUI Version (Recommended for beginners):
streamlit run app.py
CLI Version (For advanced users):
python cli.py --followers followers_1.json --following following.json
To use this application, you need to download your Instagram data first:
-
Access Instagram Settings
- Open Instagram app or go to instagram.com
- Go to Settings → Privacy and Security → Data Download
-
Request Your Data
- Click "Request Download"
- Select "JSON" format (important!)
- Choose date range (recommend "All time" for complete analysis)
- Enter your email and click "Next"
-
Download and Extract
- Instagram will email you a download link (usually within 48 hours)
- Download the ZIP file and extract it
- Look for these files:
followers_1.json(orfollowers.json)following.json
Official Instagram Guide: How to download your information
-
Launch the app
streamlit run app.py
-
Upload your files
- Upload your
followers_1.jsonfile - Upload your
following.jsonfile - Click "Analyse data"
- Upload your
-
View results
- Browse through the different categories
- Check the visual summary
- Export your data if needed
-
Advanced features
- Save snapshots for future comparison
- Compare with previous snapshots to track changes
- View detailed metrics and insights
Note:
Snapshots are saved in the snapshots/ folder with timestamps (e.g. snapshot_2025-07-29_12-30.json) for easy identification. Snapshot comparison is shown directly in the Streamlit app when you select a previous snapshot from the dropdown.
Basic analysis:
python cli.py --followers followers_1.json --following following.jsonWith visualisation:
python cli.py --followers followers_1.json --following following.json --visualiseExport to CSV:
python cli.py --followers followers_1.json --following following.json --export csvSummary only:
python cli.py --followers followers_1.json --following following.json --summariseAll CLI options:
python cli.py --help-
Not Following You Back (One-sided) People you follow who don't follow you back. Consider unfollowing if you want a more balanced ratio.
-
You're Not Following Back (Unreciprocated) Your followers that you haven't followed back. Great for discovering potential connections.
-
Mutual Followers (Following Each Other) People who follow you and you follow back. Your core Instagram community.
- New Followers: People who started following you
- Lost Followers: People who unfollowed you
- Mutuals Gained: New mutual connections
- Mutuals Lost: Lost mutual connections
- Net Change: Overall follower growth/decline
instagram-follower-insights/
├── app.py # Streamlit web interface
├── cli.py # Command-line interface
├── analyser.py # Core analysis logic
├── data_loader.py # JSON file processing
├── visualiser.py # Chart generation
├── exporter.py # Data export functionality
├── snapshot_manager.py # Snapshot system
├── legacy_main.py # Original simple version
└── README.md
- Files must be in JSON format (Instagram's standard export format)
followers_1.json: Contains your follower listfollowing.json: Contains accounts you follow
- streamlit: Web interface framework
- matplotlib: Visualisation library
- json: JSON file processing (built-in)
- csv: CSV export functionality (built-in)
- argparse: CLI argument parsing (built-in)
- JSON files are parsed to extract usernames
- Set operations identify relationships between lists
- Results are categorized and presented
- Optional snapshot storage for temporal analysis
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
# Clone your fork
git clone https://github.com/Eusha425/insta-insights.git
# Install development dependencies
pip install streamlit matplotlib pandasThis project is licensed under the MIT License - see the LICENSE file for details.
- This tool is for personal use only
- Respect Instagram's Terms of Service
- Your data privacy is maintained - no data is sent to external servers
- Use responsibly and don't spam or harass other users
"Invalid JSON file format" error:
- Ensure you downloaded the correct files from Instagram
- Make sure files are in JSON format, not HTML
"Files could not be properly analysed" error:
- Verify both files are uploaded/specified
- Check file permissions and paths
- Ensure files aren't corrupted
- Check that files exist in the same directory when running the CLI version or navigate to the correct directory
Missing visualisations:
- Install matplotlib:
pip install matplotlib - For CLI: add
--visualiseflag
- Check the Issues page
- Create a new issue with:
- Error message (if any)
- Steps to reproduce
- Your operating system
- Python version
- Web Dashboard deployment option
- Advanced Analytics (engagement rates, growth trends)
- Multi-account Support
- Batch Processing for multiple data exports
- Enhanced Visualisations (timeline charts, growth graphs)
Check out the live demo here
