How to bot your instagram
How to Make an Instagram Bot With Python and InstaPy – Real Python
What do SocialCaptain, Kicksta, Instavast, and many other companies have in common? They all help you reach a greater audience, gain more followers, and get more likes on Instagram while you hardly lift a finger. They do it all through automation, and people pay them a good deal of money for it. But you can do the same thing—for free—using InstaPy!
In this tutorial, you’ll learn how to build a bot with Python and InstaPy, a library by Tim Großmann which automates your Instagram activities so that you gain more followers and likes with minimal manual input. Along the way, you’ll learn about browser automation with Selenium and the Page Object Pattern, which together serve as the basis for InstaPy.
In this tutorial, you’ll learn:
- How Instagram bots work
- How to automate a browser with Selenium
- How to use the Page Object Pattern for better readability and testability
- How to build an Instagram bot with InstaPy
You’ll begin by learning how Instagram bots work before you build one.
Important: Make sure you check Instagram’s Terms of Use before implementing any kind of automation or scraping techniques.
Free Bonus: 5 Thoughts On Python Mastery, a free course for Python developers that shows you the roadmap and the mindset you’ll need to take your Python skills to the next level.
How Instagram Bots Work
How can an automation script gain you more followers and likes? Before answering this question, think about how an actual person gains more followers and likes.
They do it by being consistently active on the platform. They post often, follow other people, and like and leave comments on other people’s posts. Bots work exactly the same way: They follow, like, and comment on a consistent basis according to the criteria you set.
The better the criteria you set, the better your results will be. You want to make sure you’re targeting the right groups because the people your bot interacts with on Instagram will be more likely to interact with your content.
For example, if you’re selling women’s clothing on Instagram, then you can instruct your bot to like, comment on, and follow mostly women or profiles whose posts include hashtags such as #beauty
, #fashion
, or #clothes
. This makes it more likely that your target audience will notice your profile, follow you back, and start interacting with your posts.
How does it work on the technical side, though? You can’t use the Instagram Developer API since it is fairly limited for this purpose. Enter browser automation. It works in the following way:
- You serve it your credentials.
- You set the criteria for who to follow, what comments to leave, and which type of posts to like.
- Your bot opens a browser, types in
https://instagram.com
on the address bar, logs in with your credentials, and starts doing the things you instructed it to do.
Next, you’ll build the initial version of your Instagram bot, which will automatically log in to your profile. Note that you won’t use InstaPy just yet.
Remove ads
How to Automate a Browser
For this version of your Instagram bot, you’ll be using Selenium, which is the tool that InstaPy uses under the hood.
First, install Selenium. During installation, make sure you also install the Firefox WebDriver since the latest version of InstaPy dropped support for Chrome. This also means that you need the Firefox browser installed on your computer.
Now, create a Python file and write the following code in it:
1from time import sleep 2from selenium import webdriver 3 4browser = webdriver.Firefox() 5 6browser.get('https://www.instagram.com/') 7 8sleep(5) 9 10browser.close()
Run the code and you’ll see that a Firefox browser opens and directs you to the Instagram login page. Here’s a line-by-line breakdown of the code:
- Lines 1 and 2 import
sleep
andwebdriver
. - Line 4 initializes the Firefox driver and sets it to
browser
. - Line 6 types
https://www.instagram.com/
on the address bar and hits Enter. - Line 8 waits for five seconds so you can see the result. Otherwise, it would close the browser instantly.
- Line 10 closes the browser.
This is the Selenium version of Hello, World
. Now you’re ready to add the code that logs in to your Instagram profile. But first, think about how you would log in to your profile manually. You would do the following:
- Go to
https://www.instagram.com/
. - Click the login link.
- Enter your credentials.
- Hit the login button.
The first step is already done by the code above. Now change it so that it clicks on the login link on the Instagram home page:
1from time import sleep 2from selenium import webdriver 3 4browser = webdriver. Firefox() 5browser.implicitly_wait(5) 6 7browser.get('https://www.instagram.com/') 8 9login_link = browser.find_element_by_xpath("//a[text()='Log in']") 10login_link.click() 11 12sleep(5) 13 14browser.close()
Note the highlighted lines:
- Line 5 sets five seconds of waiting time. If Selenium can’t find an element, then it waits for five seconds to allow everything to load and tries again.
- Line 9 finds the element
<a>
whose text is equal toLog in
. It does this using XPath, but there are a few other methods you could use. - Line 10 clicks on the found element
<a>
for the login link.
Run the script and you’ll see your script in action. It will open the browser, go to Instagram, and click on the login link to go to the login page.
On the login page, there are three important elements:
- The username input
- The password input
- The login button
Next, change the script so that it finds those elements, enters your credentials, and clicks on the login button:
1from time import sleep 2from selenium import webdriver 3 4browser = webdriver. Firefox() 5browser.implicitly_wait(5) 6 7browser.get('https://www.instagram.com/') 8 9login_link = browser.find_element_by_xpath("//a[text()='Log in']") 10login_link.click() 11 12sleep(2) 13 14username_input = browser.find_element_by_css_selector("input[name='username']") 15password_input = browser.find_element_by_css_selector("input[name='password']") 16 17username_input.send_keys("<your username>") 18password_input.send_keys("<your password>") 19 20login_button = browser.find_element_by_xpath("//button[@type='submit']") 21login_button.click() 22 23sleep(5) 24 25browser.close()
Here’s a breakdown of the changes:
- Line 12 sleeps for two seconds to allow the page to load.
- Lines 14 and 15 find username and password inputs by CSS. You could use any other method that you prefer.
- Lines 17 and 18 type your username and password in their respective inputs. Don’t forget to fill in
<your username>
and<your password>
! - Line 20 finds the login button by XPath.
- Line 21 clicks on the login button.
Run the script and you’ll be automatically logged in to to your Instagram profile.
You’re off to a good start with your Instagram bot. If you were to continue writing this script, then the rest would look very similar. You would find the posts that you like by scrolling down your feed, find the like button by CSS, click on it, find the comments section, leave a comment, and continue.
The good news is that all of those steps can be handled by InstaPy. But before you jump into using Instapy, there is one other thing that you should know about to better understand how InstaPy works: the Page Object Pattern.
Remove ads
How to Use the Page Object Pattern
Now that you’ve written the login code, how would you write a test for it? It would look something like the following:
def test_login_page(browser): browser. get('https://www.instagram.com/accounts/login/') username_input = browser.find_element_by_css_selector("input[name='username']") password_input = browser.find_element_by_css_selector("input[name='password']") username_input.send_keys("<your username>") password_input.send_keys("<your password>") login_button = browser.find_element_by_xpath("//button[@type='submit']") login_button.click() errors = browser.find_elements_by_css_selector('#error_message') assert len(errors) == 0
Can you see what’s wrong with this code? It doesn’t follow the DRY principle. That is, the code is duplicated in both the application and the test code.
Duplicating code is especially bad in this context because Selenium code is dependent on UI elements, and UI elements tend to change. When they do change, you want to update your code in one place. That’s where the Page Object Pattern comes in.
With this pattern, you create page object classes for the most important pages or fragments that provide interfaces that are straightforward to program to and that hide the underlying widgetry in the window. With this in mind, you can rewrite the code above and create a HomePage
class and a LoginPage
class:
from time import sleep class LoginPage: def __init__(self, browser): self.browser = browser def login(self, username, password): username_input = self.browser.find_element_by_css_selector("input[name='username']") password_input = self.browser.find_element_by_css_selector("input[name='password']") username_input.send_keys(username) password_input.send_keys(password) login_button = browser.find_element_by_xpath("//button[@type='submit']") login_button.click() sleep(5) class HomePage: def __init__(self, browser): self.browser = browser self.browser.get('https://www.instagram.com/') def go_to_login_page(self): self.browser.find_element_by_xpath("//a[text()='Log in']").click() sleep(2) return LoginPage(self.browser)
The code is the same except that the home page and the login page are represented as classes. The classes encapsulate the mechanics required to find and manipulate the data in the UI. That is, there are methods and accessors that allow the software to do anything a human can.
One other thing to note is that when you navigate to another page using a page object, it returns a page object for the new page. Note the returned value of go_to_log_in_page()
. If you had another class called FeedPage
, then login()
of the LoginPage
class would return an instance of that: return FeedPage()
.
Here’s how you can put the Page Object Pattern to use:
from selenium import webdriver browser = webdriver.Firefox() browser.implicitly_wait(5) home_page = HomePage(browser) login_page = home_page.go_to_login_page() login_page.login("<your username>", "<your password>") browser.close()
It looks much better, and the test above can now be rewritten to look like this:
def test_login_page(browser): home_page = HomePage(browser) login_page = home_page. go_to_login_page() login_page.login("<your username>", "<your password>") errors = browser.find_elements_by_css_selector('#error_message') assert len(errors) == 0
With these changes, you won’t have to touch your tests if something changes in the UI.
For more information on the Page Object Pattern, refer to the official documentation and to Martin Fowler’s article.
Now that you’re familiar with both Selenium and the Page Object Pattern, you’ll feel right at home with InstaPy. You’ll build a basic bot with it next.
Note: Both Selenium and the Page Object Pattern are widely used for other websites, not just for Instagram.
How to Build an Instagram Bot With InstaPy
In this section, you’ll use InstaPy to build an Instagram bot that will automatically like, follow, and comment on different posts. First, you’ll need to install InstaPy:
$ python3 -m pip install instapy
This will install instapy
in your system.
Note: The best practice is to use virtual environments for every project so that the dependencies are isolated.
Remove ads
Essential Features
Now you can rewrite the code above with InstaPy so that you can compare the two options. First, create another Python file and put the following code in it:
from instapy import InstaPy InstaPy(username="<your_username>", password="<your_password>").login()
Replace the username and password with yours, run the script, and voilà! With just one line of code, you achieved the same result.
Even though your results are the same, you can see that the behavior isn’t exactly the same. In addition to simply logging in to your profile, InstaPy does some other things, such as checking your internet connection and the status of the Instagram servers. This can be observed directly on the browser or in the logs:
INFO [2019-12-17 22:03:19] [username] -- Connection Checklist [1/3] (Internet Connection Status) INFO [2019-12-17 22:03:20] [username] - Internet Connection Status: ok INFO [2019-12-17 22:03:20] [username] - Current IP is "17. 283.46.379" and it's from "Germany/DE" INFO [2019-12-17 22:03:20] [username] -- Connection Checklist [2/3] (Instagram Server Status) INFO [2019-12-17 22:03:26] [username] - Instagram WebSite Status: Currently Up
Pretty good for one line of code, isn’t it? Now it’s time to make the script do more interesting things than just logging in.
For the purpose of this example, assume that your profile is all about cars, and that your bot is intended to interact with the profiles of people who are also interested in cars.
First, you can like some posts that are tagged #bmw
or #mercedes
using like_by_tags()
:
1from instapy import InstaPy 2 3session = InstaPy(username="<your_username>", password="<your_password>") 4session.login() 5session.like_by_tags(["bmw", "mercedes"], amount=5)
Here, you gave the method a list of tags to like and the number of posts to like for each given tag. In this case, you instructed it to like ten posts, five for each of the two tags. But take a look at what happens after you run the script:
INFO [2019-12-17 22:15:58] [username] Tag [1/2] INFO [2019-12-17 22:15:58] [username] --> b'bmw' INFO [2019-12-17 22:16:07] [username] desired amount: 14 | top posts [disabled]: 9 | possible posts: 43726739 INFO [2019-12-17 22:16:13] [username] Like# [1/14] INFO [2019-12-17 22:16:13] [username] https://www.instagram.com/p/B6MCcGcC3tU/ INFO [2019-12-17 22:16:15] [username] Image from: b'mattyproduction' INFO [2019-12-17 22:16:15] [username] Link: b'https://www.instagram.com/p/B6MCcGcC3tU/' INFO [2019-12-17 22:16:15] [username] Description: b'Mal etwas anderes \xf0\x9f\x91\x80\xe2\x98\xba\xef\xb8\x8f Bald ist das komplette Video auf YouTube zu finden (n\xc3\xa4here Infos werden folgen). Vielen Dank an @patrick_jwki @thehuthlife und @christic_ f\xc3\xbcr das bereitstellen der Autos \xf0\x9f\x94\xa5\xf0\x9f\x98\x8d#carporn#cars#tuning#bagged#bmw#m2#m2competition#focusrs#ford#mk3#e92#m3#panasonic#cinematic#gh5s#dji#roninm#adobe#videography#music#bimmer#fordperformance#night#shooting#' INFO [2019-12-17 22:16:15] [username] Location: b'K\xc3\xb6ln, Germany' INFO [2019-12-17 22:16:51] [username] --> Image Liked! INFO [2019-12-17 22:16:56] [username] --> Not commented INFO [2019-12-17 22:16:57] [username] --> Not following INFO [2019-12-17 22:16:58] [username] Like# [2/14] INFO [2019-12-17 22:16:58] [username] https://www. instagram.com/p/B6MDK1wJ-Kb/ INFO [2019-12-17 22:17:01] [username] Image from: b'davs0' INFO [2019-12-17 22:17:01] [username] Link: b'https://www.instagram.com/p/B6MDK1wJ-Kb/' INFO [2019-12-17 22:17:01] [username] Description: b'Someone said cloud? \xf0\x9f\xa4\x94\xf0\x9f\xa4\xad\xf0\x9f\x98\x88 \xe2\x80\xa2\n\xe2\x80\xa2\n\xe2\x80\xa2\n\xe2\x80\xa2\n#bmw #bmwrepost #bmwm4 #bmwm4gts #f82 #bmwmrepost #bmwmsport #bmwmperformance #bmwmpower #bmwm4cs #austinyellow #davs0 #mpower_official #bmw_world_ua #bimmerworld #bmwfans #bmwfamily #bimmers #bmwpost #ultimatedrivingmachine #bmwgang #m3f80 #m5f90 #m4f82 #bmwmafia #bmwcrew #bmwlifestyle' INFO [2019-12-17 22:17:34] [username] --> Image Liked! INFO [2019-12-17 22:17:37] [username] --> Not commented INFO [2019-12-17 22:17:38] [username] --> Not following
By default, InstaPy will like the first nine top posts in addition to your amount
value. In this case, that brings the total number of likes per tag to fourteen (nine top posts plus the five you specified in amount
).
Also note that InstaPy logs every action it takes. As you can see above, it mentions which post it liked as well as its link, description, location, and whether the bot commented on the post or followed the author.
You may have noticed that there are delays after almost every action. That’s by design. It prevents your profile from getting banned on Instagram.
Now, you probably don’t want your bot liking inappropriate posts. To prevent that from happening, you can use set_dont_like()
:
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"])
With this change, posts that have the words naked
or nsfw
in their descriptions won’t be liked. You can flag any other words that you want your bot to avoid.
Next, you can tell the bot to not only like the posts but also to follow some of the authors of those posts. You can do that with set_do_follow()
:
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50)
If you run the script now, then the bot will follow fifty percent of the users whose posts it liked. As usual, every action will be logged.
You can also leave some comments on the posts. There are two things that you need to do. First, enable commenting with set_do_comment()
:
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50)
Next, tell the bot what comments to leave with set_comments()
:
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session. login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50) session.set_comments(["Nice!", "Sweet!", "Beautiful :heart_eyes:"])
Run the script and the bot will leave one of those three comments on half the posts that it interacts with.
Now that you’re done with the basic settings, it’s a good idea to end the session with end()
:
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50) session.set_comments(["Nice!", "Sweet!", "Beautiful :heart_eyes:"]) session.end()
This will close the browser, save the logs, and prepare a report that you can see in the console output.
Remove ads
Additional Features in InstaPy
InstaPy is a sizable project that has a lot of thoroughly documented features. The good news is that if you’re feeling comfortable with the features you used above, then the rest should feel pretty similar. This section will outline some of the more useful features of InstaPy.
Quota Supervisor
You can’t scrape Instagram all day, every day. The service will quickly notice that you’re running a bot and will ban some of its actions. That’s why it’s a good idea to set quotas on some of your bot’s actions. Take the following for example:
session.set_quota_supervisor(enabled=True, peak_comments_daily=240, peak_comments_hourly=21)
The bot will keep commenting until it reaches its hourly and daily limits. It will resume commenting after the quota period has passed.
Headless Browser
This feature allows you to run your bot without the GUI of the browser. This is super useful if you want to deploy your bot to a server where you may not have or need the graphical interface. It’s also less CPU intensive, so it improves performance. You can use it like so:
session = InstaPy(username='test', password='test', headless_browser=True)
Note that you set this flag when you initialize the InstaPy
object.
Using AI to Analyze Posts
Earlier you saw how to ignore posts that contain inappropriate words in their descriptions. What if the description is good but the image itself is inappropriate? You can integrate your InstaPy bot with ClarifAI, which offers image and video recognition services:
session.set_use_clarifai(enabled=True, api_key='<your_api_key>') session.clarifai_check_img_for(['nsfw'])
Now your bot won’t like or comment on any image that ClarifAI considers NSFW. You get 5,000 free API-calls per month.
Relationship Bounds
It’s often a waste of time to interact with posts by people who have a lot of followers. In such cases, it’s a good idea to set some relationship bounds so that your bot doesn’t waste your precious computing resources:
session.set_relationship_bounds(enabled=True, max_followers=8500)
With this, your bot won’t interact with posts by users who have more than 8,500 followers.
For many more features and configurations in InstaPy, check out the documentation.
Conclusion
InstaPy allows you to automate your Instagram activities with minimal fuss and effort. It’s a very flexible tool with a lot of useful features.
In this tutorial, you learned:
- How Instagram bots work
- How to automate a browser with Selenium
- How to use the Page Object Pattern to make your code more maintainable and testable
- How to use InstaPy to build a basic Instagram bot
Read the InstaPy documentation and experiment with your bot a little bit. Soon you’ll start getting new followers and likes with a minimal amount of effort. I gained a few new followers myself while writing this tutorial. If you prefer video tutorials, there is also a Udemy course by the creator of InstaPy Tim Großmann.
You can also explore the possibilities of ChatterBot, Tweepy, Discord, and Alexa Skills to learn more about how you can make bots for different platforms using Python.
If there’s anything you’d like to ask or share, then please reach out in the comments below.
I Tried Instagram Automation (So You Don’t Have To): An Experiment
Has the elusive unicorn of Instagram automation ever tempted you?
We can’t blame you. Instagram automation software sites paint a pretty picture of your phone blowing up organically with likes and comments. Your social media scales effortlessly while you sit back and relax.
Brands like Nike, NASA, and whoever runs Obama’s social networks are begging you to consult.
And, oh, who’s that in your DMs? Taika Waititi and Doja Cat both asking for a follow back? Wow, this is everything you dreamed of, right?
Wrong.
I tried it out, and not only did Doja Cat not return any of my messages, but I also lost time, money, and a bit of dignity.
All is not lost; there are legitimately helpful Instagram automation tools. We’ll get to them at the end of this article. But first, here’s what happened when I tried Instagram automation.
What is Instagram automation?
What is NOT Instagram automation?
What happened when I tried Instagram automation
Lessons from Instagram automation
Legitimately helpful Instagram automation tools
Bonus: Download a free checklist that reveals the exact steps a fitness influencer used to grow from 0 to 600,000+ followers on Instagram with no budget and no expensive gear.
What is Instagram automation?To be clear, the kind of Instagram automation we’re discussing are bots that like posts, follow accounts, and comment on your behalf.
Ideally, you train your bots to sound and act like you. Then, those bots go out and find accounts they think you’ll like. They interact with them using parameters you’ve set beforehand in a hopefully natural way.
The idea is that by engaging with other accounts, those accounts will turn around and engage with you. This way, you’ll be building a following with real people by using a bot to do the work.
But, much like friends in real life, you can’t use a robot to foster relationships for you. Wall-E types excluded, of course. It’s impersonal, and people tend to know when a bot is pretending to be a person, and people hate it.
And when people on Instagram hate something, Instagram tends to hate it too and bans quickly follow. They want their real users to happily spend as much time as possible on the app, so they take black-hat social media tricks pretty seriously.
Instagram automation is one of those pesky black-hat techniques, like engagement pods, which we tried and, spoiler alert, they failed. It’s in line with buying Instagram followers. We tried that too, and it left us with an inflated follower count, zero engagement, and a long list of obviously fake followers.
What is NOT Instagram automation?Let me be crystal clear: There are excellent, legitimate Instagram automation tools and software out there. They do the groundwork for you, letting you focus on tactics that can authentically scale your social efforts, like creating content your followers want to see.
In the context of this article, we’re discussing Instagram automation practices that are black-hat tactics. The legitimate tools we know and love don’t fall under this umbrella. We’ve listed a few of our favorite tools and software at the end of this piece.
What happened when I tried Instagram automationNow that we’re on the same page with what “Instagram automation” means, we can get into the nitty-gritty.
I started off by doing what you probably did to get here — I Googled “Instagram automation. ” I landed on Plixi, one of the first advertised Instagram automation offerings on Google. It seemed like a good place to start.
Experiment 1
Step 1: Sign up
Sign up was quick and easy. I linked my Instagram account and put in my credit card information. I used an old account that only had 51 Followers, so the only way to go was up!
Plixi’s home page bragged about having a “patent-pending” model. Essentially, they’re crawling Instagram and using machine learning to find and interact with like-minded accounts, engaging with them, and encouraging followers.
Step 2: Growth Settings
After signing up, Plixi asked me to set my growth settings. The free (for 24 hours before you have to pay for a month at $49) version allows you to choose “slow” for your follower growth. Slow it is.
I added in “accounts like mine” so Plixi could target their followers, assumedly. This was a bit tough as the account I was using — Scholar Collars — was a silly fashion line I launched at the beginning of the pandemic.
What’s Scholar Collars, you ask? I created collared dickies for those last-minute oh-my-God-I’m-still-wearing-pajamas Zoom meetings.
You can keep one in your desk drawer, then slap it on under your t-shirt or sweater for an instant professional upgrade. On Zoom, you can only see your neck and shoulders, so the other meeting attendees think you’re in chic business casual wear.
View this post on Instagram
A post shared by Scholar Collars (@scholarcollars)
As you can see, it wasn’t exactly easy to find similar accounts, so I added @Zoom.
There were a few other options to set up my account for success, but they were all gated behind a Pro account.
Step 3: Start
I slapped the Start Growth button, and Plixi started finding me new followers. I had one within the first 2 minutes — a crypto app account.
Plixi also told me in my activity dashboard that they had “Reached 9 users based on @zoom” though it’s unclear what that actually means. They hadn’t reached out to nine users as far as I could tell.
Step 4: Watch my followers grow
After 24 hours, I had eight more followers, taking me from 51 to 59. The next day my follower count grew to 100. Over a week, my follower count grew to 245, which is pretty okay — it wasn’t as cheap and easy as other ways to buy followers. But, the accounts appeared legit, and the growth was slow enough that Instagram didn’t seem keen to flag my account.
But, I now had 245 followers and still only seven likes on one of my photos. And no activity from my own account. I had been under the impression that Plixi would also like and comment from my account. It did not.
The growth was fine and all, but what’s really the point? For $50, I had no engagement besides an increase in follower count. And because Plixi hadn’t interacted with other accounts, I couldn’t be sure where the followers were coming from, but it wasn’t from organic engagement.
So, Plixi was a letdown. But, like any good researcher, I tried a second experiment.
Experiment #2,
Step 1: Find an Instagram comment bot
After Plixi, I wanted to focus my efforts on automating engagement. Naturally, I Googled “Instagram comment bot and automatic Instagram likes”
I found one that automatically sends out DMs. Yikes. That seemed too personal somehow. And another that promised me it was a real person, which, if you’ve read our chatbot do’s and don’ts, you’ll know is a chatbot-don’t.
Instaswift seemed to be more what I was after — and they advertised a free Instagram-like-bot trial. Sold.
Step 2: Try the Instagram bot for free
The free Instagram bot turned out to be 10 to 15 free likes on your last three uploaded pictures. When I tried it, I was met with an error message. Off to a rocky start with Instaswift.
Source: Instaswift
Step 3: Pay for it
A week of Instaswift with 3-4 comments is $15, so despite the disappointment from the free trial, we’re still going ahead. Maybe they treat paying customers a little better.
Step 4: Post a photo
You have to post a new photo for it to start working, and the one I chose of my friend’s cat Gus got 110 likes and four comments. The surge in likes would have looked fake if I hadn’t done the follower campaign first. Now, it only looks fake if you look closely.
I opted to cancel my subscription as it automatically renews from week to week.
Now, I just had to find a bot to comment from my account.
Experiment 3
Step 1: Find a comment bot
For the third experiment, I tried PhantomBuster. It promised to post comments from my account automatically.
Plus, it had promised Instagram automation for free with a 14-day trial. Sold.
Step 2: Sign up and get started
PhantomBuster uses cookies to log in to your account to comment on your behalf. Once I had that sorted, it asked me for a spreadsheet with post URLs and comment examples.
Then, I sent Phantom Buster to ‘go’ and sat back.
Bonus: Download a free checklist that reveals the exact steps a fitness influencer used to grow from 0 to 600,000+ followers on Instagram with no budget and no expensive gear.
Get the free guide right now!
#1 Social Media Tool
Create. Schedule. Publish. Engage. Measure. Win.
Start free 30-day trial
Step 3: Check your results
The bot automatically commented on three posts. But, they were the three account URLs and comments I had added to the spreadsheet. It would have taken me less time to comment on the posts myself.
If this wasn’t a free trial, I would be upset that PhantomBuster billed me for doing something I could have done myself.
Lessons from Instagram automationInstagram automation is no secret path to instafame or even more engagement. It turned out to be a waste of time and money for me.
There’s no such thing as a legitimate, risk-free Instagram automation service
As Hootsuite writers Paige Cooper and Evan LePage each discovered when they ran this experiment, automating Instagram marketing and engagement ain’t it.
Paige Cooper tried three different sites: InstaRocket, Instamber, and Ektor.io. She described her experiment as “shockingly ineffective” after gaining and losing less than ten followers. Though, Paige did wind up with some comments — notably, “Why did u buy followers” and “U have small likes.”
Evan LePage used the now-defunct Instagress to get 250 followers in 3 days. He reported:
“I [automatically] commented “your pics > my pics” on a selfie of a boy who was clearly in middle school. In fact, his account was composed of only four pictures, three of them selfies. I felt uncomfortable. The teenage boy told me I was being modest.”
Yikes.
And as for myself, the experience was a lunch bag letdown. Yes, I got a few new followers and some comments. But, ultimately, the followers weren’t aligned with my brand and the comments
There is no way to automate Instagram legitimately, effectively, and without risk.
It’s not worth the time searching and setting up
One of the biggest frustrations I found was that searching for “legitimate” (AKA apps that didn’t look too sketchy) automation brands took time and effort. Then, setting up each of them to work with my Instagram account and checking in on them took time and effort, too.
If I had spent the same amount of time just working on a social media strategy, I would be in a much better place right now.
Legitimately helpful Instagram automation toolsNow for the good part. All hope is not lost when it comes to helpful Instagram automation tools. Like most things in life, there’s no magic wand you can wave to get what you want. But, there are magic wands that can make your workday a bit easier.
Hootsuite’s Scheduling Software
Scheduling software allows you to plan your Instagram posts ahead, so you don’t have to scramble the day of. Hootsuite’s scheduling features are a dream for busy content creators and marketers — and key to saving you time on your social media marketing efforts.
Hootsuite Analytics
Tools for Instagram analytics and metrics can automate reports for you, so you can see what’s working and what’s not and pull reports easily for clients or managers that show results across all your social media platforms. We’re clearly a little biased, but we do love Hootsuite Analytics, and social media managers do too.
Heyday
Chatbots for Instagram can alleviate the drudgery of FAQs, customer support, and sales — you just have to find one you can trust. We love Heyday — so much so that we partnered with them.
Heyday lets you manage all of your customer’s queries from a single dashboard, so your Instagram DMs are easy to check. And, it automates messages for you, like frequently asked questions.
Source: Heyday
Hootsuite’s social listening tools
Social listening and hashtag monitoring tools can crawl for keywords important to your brand. You can set up a search for relevant topics, see who’s saying what out there, then comment back.
Start building your Instagram presence the real way using Hootsuite. Schedule and publish posts directly to Instagram, engage your audience, measure performance, and run all your other social media profiles — all from one simple dashboard. Try it free today.
Get Started
Grow on Instagram
Easily create, analyze, and schedule Instagram posts, Stories, and Reels with Hootsuite. Save time and get results.
Free 30-Day Trial
Instagram: privacy and security settings
Social network accounts, especially popular ones, are a tasty morsel for attackers. And it is easiest to hack what is poorly protected. Therefore, we regularly remind you that it is worth taking care of the security of your accounts, as far as social networks allow it.
- Set up privacy and security for your Instagram account
- The most important security settings on Instagram
- How to change your Instagram password
- How to set up two-factor authentication on Instagram
- How to check in the app if you received a real email from Instagram
- Where to find the list of apps connected to Instagram
- The most important privacy settings on Instagram
- How to close your Instagram account and edit your followers list
- How to control who sees your Instagram stories
- How to get rid of spam comments on Instagram
- How to get rid of spam in direct and adding to the left groups on Instagram
- How to hide your online status on Instagram
- How to block or restrict a user from your Instagram
- How to remove unnecessary push notifications in the Instagram app
- The most important security settings on Instagram
- Do not forget to set up security in other social networks
Unfortunately, security and privacy settings are often difficult to understand. Moreover, developers change them from time to time. For example, Instagram settings have recently been updated. We tell you what is useful in them and where to look for this useful. nine0003
Setting up account security on Instagram
New Instagram settings allow you to even more securely protect against unauthorized account login and identity theft.
To find your security settings:
- Open your profile.
- Click on the three bars in the upper right corner of the screen.
- Select Settings .
- Go to section Security .
Where to find the security settings in the Instagram app
The password is the head of everything
The first rule of security for any account is to set a good, long, unique password. Attackers will not be able to quickly pick it up and will not find it in the databases that they managed to steal from other sites, which means they will not be able to hack into your account. At least, if you do not give out your password yourself or it does not leak from the social network itself.
How to set up two-factor authentication on Instagram
Turn on two-factor authentication to ensure that your password is leaked. Every time someone tries to log in on a new device on your behalf, the social network will request a one-time code from SMS or from a special application. Thus, you will always be aware of login attempts, and it will be impossible to hack your account without knowing the code. nine0003
To enable two-factor authentication:
- Select Two-factor authentication .
- Press Start .
- Choose how you want to receive codes: via SMS or two-factor authentication app .
How to set up two-factor authentication in the Instagram app
An added bonus - after enabling this feature, the social network will give you backup codes . They will help you log into your profile if you don’t have a phone at hand that should receive SMS or on which an application for generating one-time codes is installed (yes, you can do this too - see this post for more details). Write down the backup codes and keep in a safe place.
How to check in the app if you received a real email from Instagram
Instagram developers figured out how to protect their users from phishing via email. Now in the application settings you can see what letters the social network has sent you over the past two weeks. If you received a letter supposedly from Instagram, but it is not in the application, you can safely send it to spam. nine0003
To see which social media notifications are real:
- Select Emails from Instagram .
- Look for the letter you are interested in under the Security tab if it concerns login attempts, suspicious activity from your account, and so on. If it's about something else, check if it's on the tab Other .
How to check in the app if you received a real email from Instagram
Where to find a list of apps connected to Instagram
Another source of danger is third-party sites and apps. They are connected to expand the capabilities of the social network, for example, add photo filters or convenient marketing tools. However, if such an application is hacked or its authors are dishonest, your account can be used for criminal purposes. You can view the list of connected applications and sites and remove everything superfluous in the same section Security , in block Applications and websites .
Where can I find the list of apps connected to Instagram
Setting up Instagram privacy?
Instagram allows you not only to keep your profile safe, but also to restrict access to your photos, videos, stories and other data. You can hide personal content from prying eyes, save yourself and friends from offensive comments, and prevent subscribers from sharing your stories and posts with others. For this:
- Open your profile.
- Click on the three bars in the upper right corner of the screen.
- Select Settings .
- Go to section Privacy .
Where to find the privacy settings in the Instagram app
How to close your Instagram account
If Instagram is not a promotion site for you, but a place to share pictures and videos with friends, you can make your account private:
- Open Account privacy .
- Enable Closed account .
How to close your Instagram account
Now only followers you have approved will see your posts and stories. True, there are some nuances. Firstly, everyone who managed to subscribe to you before is automatically considered approved by the social network. If you do not agree with it, then you need to do this:
- Section Privacy select Accounts you follow .
- On the Followers tab, find and remove those you don't want to show your posts and stories to.
How to edit your Instagram followers list
Secondly, if you repost an Instagram photo to another social network, it will be seen by everyone who can see your posts on that social network. So if you do this often, don't forget to set up privacy on other social networks as well.
How to control who sees your Instagram stories
If you are an insta-blogger and it is not convenient for you to close your account, you can control access to specific content. For example, Instagram allows you to hide stories from individual users, publish some of them only to your list of close friends, and limit or even turn off the ability to respond to them. All this is done in section Privacy in block History . There you can also prevent readers from sharing your stories in messages and showing your posts in their stories. nine0003
How to control who sees your Instagram stories
To protect yourself and your followers from abuse and spam, you can automatically hide inappropriate comments using Instagram filters or your own. You can configure this in section Privacy , in block Comments . There you can also prevent especially gifted spammers from commenting on your photos and videos.
How to get rid of spam comments on Instagram
How to get rid of direct spam on Instagram
The social network allows you to prevent outsiders from writing you private messages and adding you to groups. If you are annoyed by spam in direct or you think that messages are your private space, open in section Privacy block Messages and select Only people you follow for both items.
How to get rid of spam in direct and adding to the left groups on Instagram
How to hide your online status on Instagram
If you don't want your readers to know when you're online, you can hide your online status from them. To do this, select in section Privacy item Network status and deactivate the switch. True, after that you will also not be able to see information about the activity of other users.
How to hide your online status on Instagram
How to hide from specific users on Instagram
Finally, spammers and other annoying readers can be blocked or restricted from accessing your account. To do this, click on the objectionable profile three dots in the upper right corner and select Block or Restrict access .
How to block or restrict someone from accessing your Instagram
Restricted account holders will still be able to view your photos and videos and even leave comments on them, but only you and the author will see these comments. nine0003
You can also put the user in silent mode if you are tired of his stories and posts in the feed. This can also be done in his profile:
- Click the button Subscriptions .
- Select Switch to silent mode .
- Enable mute mode for Stories , Posts or both.
Setting the Instagram user to silent mode
Your friend will not know anything about it, and you can take a break from the flurry of his photos and look at them only when you are in the mood - his profile will remain visible to you. nine0003
How to remove unnecessary push notifications in the Instagram app
Instagram, like any social network, by default sends more notifications than you need. To avoid annoying pop-up notifications that one of your friends has posted a photo for the first time in a long time, you can turn them off. To do this:
- Open your profile.
- Click on the three bars in the upper right corner of the screen.
- Select Settings . nine0010
- Go to section Notices .
- Go through the list of push notifications and turn them off for any events you don't want to know about right away. If you don't want to be notified at all, for example when you're playing or watching a series, select Pause all and set how long Instagram will remain silent.
How to remove unnecessary push notifications in the Instagram app
Now you know how to protect your Instagram account and can customize it the way you want. It's time to remember about your accounts in other social networks. Here's what the security and privacy settings look like on Vkontakte, Facebook, Odnoklassniki, and Twitter. nine0003
We are looking for an Instagram profile number / Habr
At the end of the article, a ready-made tool is presented
What can you learn about a person you don't know if you have a pathetic 11 digits of his phone number?
We often have to deal with the analysis of information from open sources. In particular, the most useful are social. networks, since they contain information about specific people who themselves were happy to share it.
By and large, any modern social. the network is a storehouse of knowledge for an OSINT researcher, however, most of the really useful information is hidden from the eyes of a simple layman, and it’s impossible to get it just like that (without some knowledge and proper preliminary preparation). Often you need to know in advance the structure of the mechanisms of social. networks and spend long hours looking for patterns in the processes taking place "behind the scenes". And here it's not even about finding some errors, bugs or vulnerabilities that can be exploited, but rather about situations when a feature that should have been fight evil, not join it help people and make their lives better, allows you to use yourself from a completely different side, unpredictable for the developers themselves.
Today we'll take a closer look at how the social network Instagram interacts with your phone book numbers.
Instagram has a very interesting feature that allows you to quickly help the user navigate and find their friends who also use Instagram after registration. nine0003
Previously, it was enough to go to "Discover People" and move to the "Contacts" tab, after which we instantly received a list of users associated with our phone book:
The feature is quite interesting, given that it is very easy to calculate an account a person - just put the number in the address book, then go to "Discover People" -> "Contacts", and get his account already. And where the Instagram account is, there is necessarily a photo of the owner, his friends and the events that happened to him. For a social engineer, this is just a storehouse - in a word, everything is delicious, and Instagram was well aware of this. nine0300 Therefore, this loophole was closed, or at least they tried to do so.
It was sad to come across articles (like this one: lifehacki.ru/pochemu-v-instagramme-ne-pokazyvaet-kontakty) that appeared this autumn. In short, they said that “Instagram services have fallen”, and that “Instagram support does not respond to mass requests from users” and so on.
The fact is that our favorite “Contacts” tab, since September, has become empty, asserting with all its solemn air that our phone book, it turns out, does not contain a single number related to any Instagram accounts at all. nine0003
Indeed, one would think that this is some kind of malfunction on the Instagram servers, and soon everything will return to normal. But all hope is dashed as soon as we upgrade to version 118.0.0.28.122, because...
Yes. Because now there is no “Contacts” tab at all. In fact, the feature was cut out and, most likely, this is due to the desire of Instagram to look like a company that cares about the privacy of its users and their personal data. Actually, that's all, put likes, subscribe to the channel, we're splitting up, right?
Wait a minute! But why, then, the new version of the application still asks me for permission to access the phone book?
Maybe we missed something after all? Let's take another look at the suggested users panel.
Indeed, Instagram shows me offers that I could not find out in any way, except for the phone book. We draw conclusions: Instagram just redesigned the feature in a certain way, complicating the process of matching people from the phone book with their users. And this is what I propose to play with. nine0003
How does the new matching process work in general? Obviously, the phone book is still processed by Instagram, but now it’s not clear who is in the list from the phone book and who is not. Or is it still possible? Let's try to subscribe to some user, and see how the list of suggested users changes.
We can see that the entire offer is now inundated with users who are associated with our only subscription. This suggests that users get here in a very large number of ways, from advertising accounts to close friends of those you follow. nine0282 But what about the list itself? There are 10 accounts on one page, and if you scroll further, a dozen more will appear. I wonder how long this list is? We begin to methodically go down, go through a few more loads and bump into the end of the list.
If we count all users (and they are unique here, without repetition), then exactly 100 pieces come out. In addition, the contents of the list are permanent. Maybe, of course, the order of users in this list will change, but not the content. This is your "bubble" that you will be in for a while, unless you freak out and start deleting everyone! Then the list may end and Instagram will be forced to make you a new one! After deleting all:
After swipe with update:
If you update the list too often, Instagram leaves you in the current "bubble": you delete users, but they do not disappear (after updating the list, they are back in place). A measure to protect against permanent deletions, of course, is not a bad one. But we, too, are not born with a bast, so “if you can’t defeat the crowd, lead it”! Let's try to experiment a little: subscribe to everyone who was in the proposal. Subscribed to all:
List updated:
After updating the list with a swipe, we see a new one. Now you can safely unsubscribe from all those people - we no longer need them. This approach will allow you to get out of the "bubble" and find the next account by number, if necessary.
All of the above clearly shows that it is still not difficult to get the owner's account from the phone number. Based on these developments, we at Postuf implemented a simple nuga.app service to search for an Instagram account by its number in order to demonstrate one of the many potential sources of information for an OSINT engineer. nine0003
This service demonstrates only a small part of what can be obtained from open sources, and what is available to you here and right now, but which you can simply not guess.