Make an Instagram bot in Python

·

3 min read

In this article we will try to make an Instagram bot using Python and Instabot. Bots are really common these days to that automates the tasks such as sending messages, uploading photos, following and unfollowing users, and many more. Bots reduce our work and save our time. Today we will create an a simple instagram bot that can do:

i/ Post a photo

ii/ Follow one or more users

iii/ Unfollow one or a list of users

iv/ Unfollow everyone

v/ Count number of followers of a user

vi/ Like and comment on a post

vii/ Send messages

Instabot library:

Instabot is a Python module, which not only implements the wrapper over the Instagram API, but also various useful methods, such as login to instagram account, getting users from the data, getting media from users or from hastags, comments, likes, follows, and uploading photos.

By the way we hardly recommend you not to use your own account if you don’t need your personal data or don’t want to promote your account.

To get a quick understanding of how the bot works, lets start with trying out some of the bot functions.

Installation

$ pip  install instabot

Login

To perform any of the method of a bot, we need to login to the instagram account. So first, import instabot library and login

# Import instabot library
from instabot import Bot

# Create a instance  of bot
bot = Bot()

# Login
bot.login(username="your_userid", password="your_password")

1/ Post a photo:

A photo can be either in .jpg or jpeg format

from instabot import Bot

bot = Bot()

bot.login(username="your_userid", password="your_password")

img = "photo.jpg"   # give the path and name if it is in different directory
bot.upload_photo(img, caption="(...")

2/ Follow one or more users

To follow one user, use follow()

from instabot import Bot

bot = Bot()

bot.login(username="your_userid", password="your_password")

# To follow single user.
bot.follow("username")

To follow multiple users, use follow_users()

# To follow more user.
list_of_user = ["userId1", "userId2", "userId3", "...."]
bot.follow_users(list_of_user)

3/ Unfollow one or a list of users

To unfollow one user we nees to use unfollow() function.

from instabot import Bot

bot = Bot()
bot.login(username="your_username", password="your_password")

# To unfollow a single user.
bot.unfollow("username")

To unfollow multiple users, use unfollow_users()

# To unfollow more users.
unfollow_list = ["userId1", "userId2", "userId3", "..."]
bot.unfollow_users(unfollow_list)

4/ Unfollow everyone

To unfollow every user that we follow, use the function unfollow_everyone()

from instabot import Bot

bot = Bot()
bot.login(username="your_username", password="your_password")

# To unfollow everyone use:
# Please Note that using this will remove all your followings
bot.unfollow_everyone()

5/ Count number of followers of a user

We can get the number of followers of a user or our own using the get_user_followers() function. This will get the list of followers id.

from instabot import Bot

bot = Bot()
bot.login(username="your_username", password="your_password")

# Count number of followers
followers = bot.get_user_followers("username")
print("Total number of followers:")
print(len(followers))

6/ Like and comment on a post

from instabot import Bot

bot = Bot()
bot.login(username="your_username", password="your_password")

post_link = "https://www.instagram.com/p/CWqleONFg4/"   # enter the post link
post = bot.get_media_id_from_link(post_link)

# like
bot.like(post)

# comment
bot.comment(post, "Comments ..")

7/ Send messages to a user with send_message() function

from instabot import Bot

bot = Bot()
bot.login(username="your_username", password="your_password")

# To send message to a single user.
message = "Hello, Thanks for the gift"
bot.send_message(message, "username")

GitHub link

More functions can be seen in the documentation here