Follow Sync is a little Go program that helps you synchronize your Instagram "Following" list. Basically, it can unfollow all profiles that are not following you back.
🚨 NOTICE: This project is no longer maintained.
I no longer use Instagram and therefore have no way to test or maintain any fixes to this program. It uses an upstream library that uses Instagram's proprietary API (reverse-engineering what the official app does, to get to features their public API doesn't allow/to circumvent all of that nonsense).
The proprietary API is subject to change (and they probably change it on purpose now and again because they don't want people to use it) so this program may break periodically. If upstream ahmdrz/goinsta continues to work, this should too with a rebuild from source.
Fork this project if you need to maintain it other than that.
If you
go get
to install this it should probably (try to) build with the latestgoinsta
library which may work at any given time.--Kirsle
It uses the Instagram unofficial API (ahmdrz/goinsta) to log in to your account (pretending that it's an Android device), compares your followers and following lists, and provides a summary and a choice of action: go ahead and unfollow the users who don't follow you back, or exit and you can review the data on your own.
This program creates a CSV file named follower-lists-$USERNAME.csv
that
contains your full list, so you can examine what's on your lists or as a backup
in case you want to know who you unfollowed later.
$ go install -u github.com/kirsle/follow-sync
$ follow-sync [-wait DELAY=60]
By default, this program waits 60 seconds between each unfollow. This is the safest rate to stay under Instagram's rate limit, but you can override it if needed. See Caveats below.
Just run the follow-sync
executable. It will prompt for your username and
password (non-echoed output), collect your friend lists and compare them,
and print out a summary.
At this point you can open the follower-lists-$USERNAME.csv
in your favorite
spreadsheet program if you want to inspect the Following and Follower lists.
The program will prompt for final verification before it goes ahead and begins unfollowing users.
Occasionally, the Instagram API can get pretty fussy with rate limits. Most API functions this program calls will panic if it gets an error. No big deal: you can just wait a few minutes and run the program again and it should pick up where it left off.
The safest rate limit according to what documentation I could find is to not unfollow more than 60 profiles per hour. As such, this program has a 60 second delay between each unfollow action by default.
I've seen with shorter delays, such as 2 seconds, that I was able to unfollow between 600 and 900 users before the API rate limited me.
To change the delay between unfollows, use the -wait
command line option.
For example:
$ follow-sync -wait 2
The shell script dist.sh
can cross-compile the binary for multiple platforms.
Full list of examples for the platforms I export to:
./dist.sh linux 64
./dist.sh linux 32
./dist.sh windows 64
./dist.sh windows 32
./dist.sh darwin 64
Distributables are put into appropriately-named subdirectories of the dist/
folder, and zipped up along with other project metafiles (README, etc.)
Follow-Sync: Instagram Follower Synchronization Tool
Copyright (C) 2017 Noah Petherbridge
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA