Track changes in an Instagram profile's followers and following lists over time — even for private accounts (if you follow them). Built with Python + Instaloader, runs locally on your machine, and saves clean changelogs after each run.
- Detects:
- ➕ New followers
- ➖ Lost followers
- ➕ Newly followed accounts
- ➖ Unfollowed accounts
- Saves a timestamped changelog (
.md) per run - All users are output as clickable Instagram links
- Summary stats with net gain/loss
- Optional
--dry-runmode to preview changes without saving - Includes an optional
pyfigletASCII banner ("ig-tracker") - Fully local and private — no remote logging or storage
git clone https://github.com/your-username/instagram-tracker.git
cd instagram-trackerpython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtIf you don't want to use the full requirements file, install the core packages manually:
pip install instaloader python-dotenv pyfigletTo track followers/following, you must be logged into an account that can view the target profile. Run:
instaloader --login=your_usernameThis will:
- Prompt for your IG password
- Ask for 2FA code if enabled
- Save a session file locally (usually at
~/.config/instaloader/session-your_username)
If your session ever expires or breaks, just re-run the above command to refresh it.
💡 Tip: To avoid hardcoding usernames, we use a
.envfile.
Create one like this:
cp .env.example .envThen edit .env with your info:
TARGET_USERNAME=target_ig_username
YOUR_IG_USERNAME=your_ig_usernamepython3 main.pyEach run will:
- Display an ASCII banner:
ig-tracker - Compare current followers/following to the last saved snapshot
- Print changes in the terminal (with clickable profile links)
- Save a Markdown changelog per run
- Save updated snapshot
.jsonfiles
python3 main.py --dry-runinstagram-tracker/
├── main.py # Main script
├── .env # Your actual config (not committed)
├── .env.example # Shared template
├── .gitignore
├── requirements.txt # Installed dependencies
└── instagram_tracking/
├── followers.json # Latest followers list
├── following.json # Latest following list
└── history/
└── 2025-07-18_17-48-15_username.md # Timestamped changelog
If you ever want to clear the saved snapshot and start fresh:
rm instagram_tracking/*.json- Built with ❤️ using Instaloader
- ASCII banners via pyfiglet