Instantly share code, notes, and snippets.

Embed
What would you like to do?
This script will delete all of the tweets in a specified account.
# -*- coding: utf-8 -*-
"""
This script will delete all of the tweets in the specified account.
You may need to hit the "more" button on the bottom of your twitter profile
page every now and then as the script runs, this is due to a bug in twitter.
You will need to get a consumer key and consumer secret token to use this
script, you can do so by registering a twitter application at https://dev.twitter.com/apps
@requirements: Python 2.5+, Tweepy (http://pypi.python.org/pypi/tweepy/1.7.1)
@author: Dave Jeffery
"""
import tweepy
CONSUMER_KEY = 'XXX'
CONSUMER_SECRET = 'XXX'
def oauth_login(consumer_key, consumer_secret):
"""Authenticate with twitter using OAuth"""
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth_url = auth.get_authorization_url()
verify_code = raw_input("Authenticate at %s and then enter you verification code here > " % auth_url)
auth.get_access_token(verify_code)
return tweepy.API(auth)
def batch_delete(api):
print "You are about to Delete all tweets from the account @%s." % api.verify_credentials().screen_name
print "Does this sound ok? There is no undo! Type yes to carry out this action."
do_delete = raw_input("> ")
if do_delete.lower() == 'yes':
for status in tweepy.Cursor(api.user_timeline).items():
try:
api.destroy_status(status.id)
print "Deleted:", status.id
except:
print "Failed to delete:", status.id
if __name__ == "__main__":
api = oauth_login(CONSUMER_KEY, CONSUMER_SECRET)
print "Authenticated as: %s" % api.me().screen_name
batch_delete(api)
@imZack

This comment has been minimized.

imZack commented Jul 25, 2014

Thank you! this saved my day!
ps. can't install tweepy from thier latest version on github. must use pip install.

@aramirezreyes

This comment has been minimized.

aramirezreyes commented Oct 24, 2014

Nice script! I'm new to the twitter API. I deleted all tweets possible with this script, but that account still shows 8,5k tweets and all the tweets containing media (photos and videos) are available. The timeline of that account does not show up these tweets, that's why the method api,user_timeline does not retreive them. I'm not seeing anything in the documentation that helps me to get these tweets, maybe you have an idea?

@JohnTroony

This comment has been minimized.

JohnTroony commented Apr 2, 2015

I've made some changes on the script https://gist.github.com/JohnTroony/489ccc8e476b9377ae47

@vik-y

This comment has been minimized.

vik-y commented Sep 5, 2015

This can delete 1-2 tweets per second.

I forked this and made a much faster version of this using threads. It can delete upto 30-50 tweets per second.
https://gist.github.com/vik-y/2669797e93a0615ef970

@adaro

This comment has been minimized.

adaro commented Sep 8, 2015

Thank you!

@nileshtrivedi

This comment has been minimized.

nileshtrivedi commented Aug 31, 2016

Getting same problem which @argelouski reported. Account shows 8K tweets, none in the main timeline but all are there in "Replies" and "Media".

One approach would be to download your complete Twitter archive, extract tweet IDs from them and delete those.

@charlesstricklin

This comment has been minimized.

charlesstricklin commented Dec 13, 2016

I've tried this, and the forked version of this, and neither deletes any of my tweets. At least this version tells me that it cannot for about 28 instances, each followed by an 18-digit number, each beginning with 80xxxxxxxxxxxxxxxx. Any idea what's wrong and what to do to correct it?

@mpahlevanzadeh

This comment has been minimized.

mpahlevanzadeh commented Mar 15, 2017

I provided a secret key ,cunsomer key and verification code. But I don't how to run this script, Specialy I don't know where spread verification code.

@v0lsh3bnik

This comment has been minimized.

v0lsh3bnik commented May 4, 2017

Hey, if you are till looking for a script to delete all tweets you can check this one out : https://github.com/volshebnikRAJ/tweepy-api

@flesueur

This comment has been minimized.

flesueur commented Jun 26, 2018

For those who want to delete older tweets, not available though the API, the following script uses tweet ids from a previously downloaded twitter archive : https://gist.github.com/flesueur/bcb2d9185b64c5191915d860ad19f23f

@ghost

This comment has been minimized.

ghost commented Jun 29, 2018

Here's a much more simple and easy way to delete tweets
https://gitlab.com/actualdragon/nuketweets

Download your tweet archive. Take the tweets.csv file and delete the tweets you want to keep or copy their ids and put them in the tweets_to_keep environment variable.

run script. nuke your tweets.

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