Skip to content

Instantly share code, notes, and snippets.

@JamieMason
Last active February 7, 2023 14:44
Embed
What would you like to do?
Unfollow everyone on twitter.com
// Unfollow everyone on twitter.com, by Jamie Mason (https://twitter.com/fold_left)
// https://gist.github.com/JamieMason/7580315
//
// 1. Go to https://twitter.com/YOUR_USER_NAME/following
// 2. Open the Developer Console. (COMMAND+ALT+I on Mac)
// 3. Paste this into the Developer Console and run it
//
// Last Updated: 09 April 2020
(() => {
const $followButtons = '[data-testid$="-unfollow"]';
const $confirmButton = '[data-testid="confirmationSheetConfirm"]';
const retry = {
count: 0,
limit: 3,
};
const scrollToTheBottom = () => window.scrollTo(0, document.body.scrollHeight);
const retryLimitReached = () => retry.count === retry.limit;
const addNewRetry = () => retry.count++;
const sleep = ({ seconds }) =>
new Promise((proceed) => {
console.log(`WAITING FOR ${seconds} SECONDS...`);
setTimeout(proceed, seconds * 1000);
});
const unfollowAll = async (followButtons) => {
console.log(`UNFOLLOWING ${followButtons.length} USERS...`);
await Promise.all(
followButtons.map(async (followButton) => {
followButton && followButton.click();
await sleep({ seconds: 1 });
const confirmButton = document.querySelector($confirmButton);
confirmButton && confirmButton.click();
})
);
};
const nextBatch = async () => {
scrollToTheBottom();
await sleep({ seconds: 1 });
const followButtons = Array.from(document.querySelectorAll($followButtons));
const followButtonsWereFound = followButtons.length > 0;
if (followButtonsWereFound) {
await unfollowAll(followButtons);
await sleep({ seconds: 2 });
return nextBatch();
} else {
addNewRetry();
}
if (retryLimitReached()) {
console.log(`NO ACCOUNTS FOUND, SO I THINK WE'RE DONE`);
console.log(`RELOAD PAGE AND RE-RUN SCRIPT IF ANY WERE MISSED`);
} else {
await sleep({ seconds: 2 });
return nextBatch();
}
};
nextBatch();
})();
@UWReserves
Copy link

@JamieMason @isinguard is right doesn't mass unfollow like it use to. It only unfollows a few and then you have to stop and restart it.

@fraterboots
Copy link

Beautiful!

@UWReserves
Copy link

UWReserves commented Jan 12, 2022

I'm not sure if anything has changed since my last comment but it appears to be working like it use to now.

@JamieMason
Copy link
Author

The last update was 09 April 2020, glad to hear it is still working alright. Maybe @isinguard and @UWReserves are both using a particular browser where it is not working right at the moment, or have a particular browser extension installed which might clash with it, I don't know.

@fayssalElAnsari
Copy link

thanks, still working 👍

@yusufpapurcu
Copy link

Legend.

@evelinas
Copy link

Thank you so much! Do you happen to have a script to remove all followers?

@AppFull
Copy link

AppFull commented Jan 31, 2022

Also looking for modified script to "remove all followers" because the menu hid under "..." menu

@JamieMason
Copy link
Author

Thank you so much! Do you happen to have a script to remove all followers?
@evelinas

You're welcome, thanks. I just have this one script to remove follows.

Also looking for modified script to "remove all followers" because the menu hid under "..." menu
@AppFull

Quite a few people have asked about this too, I hope you all find one 🤞. Thanks.

@Natsusomekeishi
Copy link

2022.3.18 可用,但是有BUG,存在部分上面的关注者无法取关

@ykavi
Copy link

ykavi commented Apr 24, 2022

great 🎉

@Sarievo
Copy link

Sarievo commented May 24, 2022

Wow

@benedlore
Copy link

Worked for about 22K of the 40K followings I was trying to remove in one go, but then started to think it was all done and needed to be restarted a few times on a refreshed page. Still better than any others I've tried.

@JamieMason
Copy link
Author

@benedlore glad it mostly worked out, 40K is a lot.

@isinguard
Copy link

@benedlore glad it mostly worked out, 40K is a lot.

It’s not that it stopped working, twitter usually puts ur acc on cooldown if you perform and action like following/unfollowing/like/unlike.. etc excessively. Just let the account rest a while, refresh the “following” page and paste the code again, then resume the unfollowing. Same thing goes with the unliking script ..

@speakingpen
Copy link

This is pretty much helpful

@roy-heinrich
Copy link

Still works damn.

@faisal-ansarii
Copy link

can you write code for removing followers on Twitter in the same way

@rkytie
Copy link

rkytie commented Aug 29, 2022

still working, awesome. thanks.

@JamieMason
Copy link
Author

can you write code for removing followers on Twitter in the same way
@faisal-ansarii

See comment on Jan 31 🤞

@rodcisal
Copy link

rodcisal commented Oct 1, 2022

still working thanks !

@hodunov
Copy link

hodunov commented Oct 7, 2022

nice one, thanks

@CacheMoneyPlaya
Copy link

works November 2022

@DealsBeam
Copy link

Works as of December 2022, it would be amazing if you could make one that would mass delete tweets and dislike liked tweets

@miguelgargallo
Copy link

Still working, amazing

@asdrubalivan
Copy link

It works here

@faderzz
Copy link

faderzz commented Jan 15, 2023

great

@saamhanza
Copy link

can anyone point me in the right direction of understanding how a script like this is put together?

@JamieMason
Copy link
Author

in what respect @saamhanza? like what each line does?

@saamhanza
Copy link

in what respect @saamhanza? like what each line does?

Thank you for getting back to me

Yes, or a video you could point me to that gives some sort of a walkthrough showing how I could replicate this for another site for example.

@JamieMason
Copy link
Author

JamieMason commented Jan 24, 2023

Yes, or a video you could point me to that gives some sort of a walkthrough showing how I could replicate this for another site for example.

@saamhanza here is a commented version of this script to help understand how it works. As far as replicating this process for other sites, a quick Google Search has come up with this Browser Automation With Javascript article which looks a good fit.

@saamhanza
Copy link

@saamhanza here is a commented version of this script to help understand how it works. As far as replicating this process for other sites, a quick Google Search has come up with this Browser Automation With Javascript article which looks a good fit.

Huge thank you for this Jamie!

@JamieMason
Copy link
Author

you're welcome, good luck learning the Web

@gthomson31
Copy link

this is beautiful! did exactly as it says on the tin 👍

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