Mass Unfollow Instagram Python Script
I found great Python script that allowing automatically unfollow accounts you are following, but that doesn’t follow you back.
import argparse import random import sys import time from InstagramAPI import InstagramAPI def GetAllFollowing(bot, user_id): following = [] next_max_id = True while next_max_id: if next_max_id is True: next_max_id = '' _ = bot.getUserFollowings(user_id, maxid=next_max_id) following.extend(bot.LastJson.get('users', [])) next_max_id = bot.LastJson.get('next_max_id', '') following = set([_['pk'] for _ in following]) return following def GetAllFollowers(bot, user_id): followers = [] next_max_id = True while next_max_id: if next_max_id is True: next_max_id = '' _ = bot.getUserFollowers(user_id, maxid=next_max_id) followers.extend(bot.LastJson.get('users', [])) next_max_id = bot.LastJson.get('next_max_id', '') followers = set([_['pk'] for _ in followers]) return followers if __name__ == '__main__': # parse cmd line args parser = argparse.ArgumentParser(description='Unfollow instagram users that don\'t follow you back!.') parser.add_argument('username', help='your instagram username') parser.add_argument('password', help='your instagram password') parser.add_argument('-n', '--num_unfollows', type=int, default=50, help='Max number of users to unfollow in session') parser.add_argument('-d', '--max_delay', type=int, default=5, help='Max seconds to wait between unfollow calls') args = parser.parse_args() # get credentials, authenticate ig = InstagramAPI(args.username, args.password) # success is just a bool success = ig.login() if not success: print('INSTAGRAM LOGIN FAILED!') sys.exit() # fetch your own primary key ig.getSelfUsernameInfo() self_id = ig.LastJson['user']['pk'] # loop through json for followers/following followers = GetAllFollowers(ig, self_id) following = GetAllFollowing(ig, self_id) print('- following {} users'.format(len(following))) print('- followed by {} users'.format(len(followers))) # they don't reciprocate unreciprocated = following - followers # i don't reciprocate free_followers = followers - following print('- following {} users that dont follow back'.format(len(unreciprocated))) print('- you have {} followers that you dont follow back\n'.format(len(free_followers))) # loop through unreciprocated users and unfollow w/ random delay for _ in list(unreciprocated)[:min(len(unreciprocated), args.num_unfollows)]: ig.getUsernameInfo(str(_)) print(' - unfollowing user {}'.format(ig.LastJson['user']['username'])) ig.unfollow(str(_)) time.sleep(random.uniform(1, args.max_delay))
Example usage:
python unfolow.py -n 250 -d 60 Your_Instagram_username Your_Instagram_password
Where is:
-n: Max number of users to unfollow in session. Default=50
-d: Max wait seconds between unfollow calls. Default=5
Script homepage on Github: https://github.com/nnormandin/Instagram-Unfollower