Skip to content

Instantly share code, notes, and snippets.

@dongarchive
Last active December 21, 2022 14:20
Show Gist options
  • Save dongarchive/9c4e2aed43e73c7554b5c74855dc063e to your computer and use it in GitHub Desktop.
Save dongarchive/9c4e2aed43e73c7554b5c74855dc063e to your computer and use it in GitHub Desktop.
Follow and unfollow instagram script - ApplyBoard
// -------------------
// To mass follow
// -------------------
// 1. Open instagram page (eg. https://www.instagram.com/visatoronto/) utilizing google chrome
// 2. Click 'xxx followers' on instagram page, this will open up a modal containing user's followers
// 3. Open google chrome developer tools by either (1) right clicking on the screen and clicking 'inspect'
// OR (2) Command + Option + J
// 4. Click on the 'console' method in dev tools
// 5. First paste the following code to instantiate jquery and press enter
let script = document.createElement("script");
script.setAttribute('src', '//code.jquery.com/jquery-latest.min.js');
script.addEventListener('load', function() {
let script = document.createElement('script');
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
// 6. Then paste this into the console to allow mass following and press enter
window.setInterval(function() {
// Set counter to follow
var x = 0;
$("button:contains('Follow')").each(function() {
// Limit to only follow 12 people every interval
if (x == 12) {
return false;
}
// Filter out following and follow buttons
if ($(this).text() != 'Follow') {
return;
}
// // Only click on follow buttons
$(this).trigger("click");
// Add to the counter
x++;
// Scroll down
$('.j6cq2').scrollTop($('.j6cq2')[0].scrollHeight);
})
}, 1000 * 60 * 15); // Call every 15 minutes
// -------------------
// To mass unfollow
// -------------------
// 1. Open instagram page (eg. https://www.instagram.com/visatoronto/) utilizing google chrome
// 2. Click 'xxx following' on instagram page, this will open up a modal containing all the user's the user is following
// 3. Open google chrome developer tools by either (1) right clicking on the screen and clicking 'inspect'
// OR (2) Command + Option + J
// 4. Click on the 'console' method in dev tools
// 5. Paste the following code to instantiate jquery and press enter
let script = document.createElement("script");
script.setAttribute('src', '//code.jquery.com/jquery-latest.min.js');
script.addEventListener('load', function() {
let script = document.createElement('script');
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
// 6. Paste this into the console to allow mass unfollowing and press enter
window.setInterval(function() {
// Start counter to follow
var x = 0;
$("button:contains('Following')").each(function() {
// Limit to only unfollow 12 people every interval
if (x == 12) {
return false;
}
// // Only click on following buttons
$(this).trigger("click");
// Add to the counter
x++;
// Scroll down
$('.j6cq2').scrollTop($('.j6cq2')[0].scrollHeight);
})
}, 1000 * 60 * 15); // Call every 15 minutes
@chaodonghu
Copy link

VM50:7 Refused to load the script 'https://code.jquery.com/jquery-latest.min.js' because it violates the following Content Security Policy directive: "script-src 'self' https://instagram.com https://www.instagram.com https://.www.instagram.com https://.cdninstagram.com wss://www.instagram.com https://.facebook.com https://.fbcdn.net https://*.facebook.net 'unsafe-inline' 'unsafe-eval' blob:". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

Sorry this script doesn't seem to work anymore due to what you posted, the jquery seems to be blocked by instagram. I've made a new script here for following:
https://gist.github.com/chaodonghu/c25c7ee3e3eb85c0a0de051892e596a4
and here for unfollowing:
https://gist.github.com/chaodonghu/c942b6ca8f8c247ccacd3b0123ff3580

I'm trying the following right now and it's working. Thanks a lot!

No worries, sorry I'm on my personal account vs work account lol. Just be careful to set the limit/timer accordingly so you don't get detected by instagram for scripting.

@Omarhosnyyy95
Copy link

Omarhosnyyy95 commented Aug 29, 2020

haha never mind. How to do that(to set the limit)?. And one other thing. I'm trying to write a selenium based(not decided yet) script to do the same job. From your experience with IG Technology and bot detection. Anything I should be aware of while building the script?

@chaodonghu
Copy link

haha never mind. How to do that(to set the limit)?. And one other thing. I'm trying to write a selenium based(not decided yet) script to do the same job. From your experience with IG Technology and bot detection. Anything I should be aware of while building the script?

On line 37 (https://gist.github.com/chaodonghu/c25c7ee3e3eb85c0a0de051892e596a4#file-follow-instagram-js-L37) you can change the multiple of the randomTimeout.

eg. const randomTimeout = () => (Math.floor((Math.random() * 10) + 1) * 1000) + 20000 -> const randomTimeout = () => (Math.floor((Math.random() * 10) + 1) * 1000) + 40000

Essentially changing the follow rate from 20-29s to 40-49s. The bot detection is kind of hard to avoid to be honest from what i've read it's probably ~100 followers/hour that it's capped at. If you really wanted to just have the tab open and run it with a safe 60-69 second rate.

For selenium based it should be the same thing, just have it click through and set the rate accordingly.

@Omarhosnyyy95
Copy link

Thanks a lot Chao. This is really helpful :)

@oromero270
Copy link

Could you whitelist people that are following you back or is it one or the other only?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment