A lightweight, Tkinter-based desktop app that lets you:
- 🔍 Look up any public Instagram profile and view
followers · following · media · public email · verified badge - 📄 Export bulk stats to CSV by pasting a list of usernames
- 🛠 Built with SOLID principles, type-hinted code, and unit-tested components
| Feature | Details |
|---|---|
| Instant lookup | Enter a single username or a comma separated list of users, click Search, and see live stats. |
| Batch export | Paste a comma- or newline-separated list, choose a save path, hit Export CSV. |
| Responsive UI | Network calls run in background threads so the window never freezes. |
| Clean architecture | Services, exporters, and GUI are separated for easy maintenance. |
| Test coverage | Pytest suites mock HikerAPI responses to verify logic. |
instainsights/
├─ **main**.py # CLI entry (parses --api\_key)
├─ src/
├─ presentation/ # Tkinter UI layer
├─ infrastructure/
├─ api/ # HikerAPI wrapper
├─ export/ # CSV writer
├─ domain/ # Typed dataclasses
├─ tests/ # Unit tests
├─ requirements.txt
├─ Makefile # Scripting entry point (like make tests.. etc)
└─ README.md
git clone https://github.com/rjulius23/instainsights.git
cd instainsights
python3 -m venv .venv && source .venv/bin/activate
python3 -m pip install -r requirements.txtpython3 main.py --api_key YOUR_HIKERAPI_KEY--api_key (or -k) is required – get one from your HikerAPI dashboard.
python3 -m pytest testsThe exported file contains:
username,follower_count,following_count,posts_count,public_email,is_verified
messi,431000000,300,1240,,true
- Fork / branch from
main. - Follow existing code style (
ruff+black). - Add/adjust unit tests for any change.
- Open a pull request describing why the change helps.
MIT — see LICENSE.
- HikerAPI – unofficial Instagram data
- Python standard library (Tkinter, csv, argparse, etc.)
- ChatGPT - o3 and Claude 3.7 Sonnet