-
-
Save dongarchive/9c4e2aed43e73c7554b5c74855dc063e to your computer and use it in GitHub Desktop.
// ------------------- | |
// 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 |
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/c942b6ca8f8c247ccacd3b0123ff3580I'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.
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?
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.
Thanks a lot Chao. This is really helpful :)
Could you whitelist people that are following you back or is it one or the other only?
I'm trying the following right now and it's working. Thanks a lot!