Skip to content

Instantly share code, notes, and snippets.

@Changaco
Forked from gmolveau/twitter_reset.md
Last active December 2, 2024 11:03
Show Gist options
  • Save Changaco/cedf4794670cb4a0a005181409bce796 to your computer and use it in GitHub Desktop.
Save Changaco/cedf4794670cb4a0a005181409bce796 to your computer and use it in GitHub Desktop.
X/Twitter reset script

Emptying your X/Twitter account

The first script below deletes your tweets, retweets and likes. Be careful! The deleted elements can't be restored!

The second script empties the list of accounts you follow.

Before proceeding, you should request and download your data archive : https://x.com/settings/download_your_data

Once you're ready:

  1. Go to the “Replies” tab of your profile.
  2. Open your browser's developer tools by pressing F12.
  3. Copy-paste the first script (x_delete.js) in the “Console” tab of the developer tools.
  4. Press Enter to launch the script.
  5. Wait until everything has been deleted. It can take a while, and you may have to reload the page and relaunch the script sometimes.
  6. Switch to the “Likes” tab of your profile and run the first script again.
  7. Click on the number of accounts you're following to get to the list of those accounts.
  8. Copy-paste the second script (x_unfollow.js) in the “Console” tab of the developer tools.
  9. Press Enter to launch the script.

Vidage de votre compte X/Twitter

Le premier script ci-dessous supprime vos tweets, retweets et likes. Faites attention ! Les éléments supprimés ne peuvent pas être restaurés !

Le second script vide la liste des comptes auxquels vous êtes abonné.

Avant de commencer, vous devriez demander et télécharger l'archive de vos données : https://x.com/settings/download_your_data

Quand vous êtes prêt :

  1. Allez à l'onglet « Réponses » de votre profil.
  2. Ouvrez les outils de développement de votre navigateur en appuyant sur la touche F12 de votre clavier.
  3. Copiez-collez le premier script (x_delete.js) dans l'onglet « Console » des outils de développement.
  4. Appuyez sur Entrée pour lancer le script.
  5. Attendez que tout soit effacé. Cela peut prendre un certain temps, et il est possible que vous soyez parfois obligé de recharger la page et relancer le script.
  6. Passez à l'onglet « J'aime » de votre profil et exécutez à nouveau le script.
  7. Cliquez sur le nombre de vos « abonnements » pour accéder à la liste des comptes que vous suivez.
  8. Copiez-collez le second script (x_unfollow.js) dans l'onglet « Console » des outils de développement.
  9. Appuyez sur Entrée pour lancer le script.
var profile_path = location.pathname.match(new RegExp("/[^/]+"));
var give_up_count = 0;
var interval = setInterval(function() {
var tweet = document.querySelector('article[data-testid="tweet"]');
if (tweet) {
give_up_count = 0;
if (tweet.querySelector('[data-testid="User-Name"] a[href="' + profile_path + '"]')) {
console.debug("found own tweet");
var dropdown = tweet.querySelector('button[data-testid="caret"]');
dropdown.click();
setTimeout(function() {
var remove = document.querySelector('[data-testid="Dropdown"]').children[0];
if (remove) {
console.debug("initiating tweet deletion");
remove.click();
setTimeout(function() {
var confirm = document.querySelector('[data-testid="confirmationSheetConfirm"]');
if (confirm) {
confirm.click();
} else {
console.error("failed to confirm tweet deletion");
}
}, 500);
} else {
console.error("tweet deletion button not found");
}
}, 500);
return;
} else {
console.debug("found foreign tweet");
var unlike = tweet.querySelector('button[data-testid="unlike"]');
if (unlike) {
console.debug("unliking");
unlike.click();
}
var unretweet = tweet.querySelector('button[data-testid="unretweet"]');
if (unretweet) {
console.debug("unretweeting");
unretweet.click();
setTimeout(function() {
console.debug("confirming unretweet");
document.querySelector('[data-testid="unretweetConfirm"]').click();
}, 500);
return;
}
tweet.remove();
}
} else {
give_up_count++;
if (give_up_count > 10) {
console.debug("looks like we're done; quitting");
clearInterval(interval);
}
}
}, 1500);
var give_up_count = 0;
var unfollow_count = 0;
var primary_column = document.querySelector('[data-testid="primaryColumn"]');
var interval = setInterval(function() {
var button = primary_column.querySelector('[data-testid$="-unfollow"]');
if (button) {
give_up_count = 0;
button.click();
setTimeout(function() {
var confirm = document.querySelector('[data-testid="confirmationSheetConfirm"]');
if (confirm) {
unfollow_count++;
confirm.click();
} else {
console.error("failed to confirm unfollow");
}
}, 500);
} else {
if (unfollow_count > 0) {
console.log("unfollowed", unfollow_count, "accounts");
unfollow_count = 0;
}
give_up_count++;
if (give_up_count > 15) {
console.debug("looks like it's done; quitting");
clearInterval(interval);
}
}
}, 1000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment