Occasionally, I want to be a shaven. With that feeling, I wanted to delete all my tweets.
There are various tweet deletion tools. However, due to API reasons, I couldn't delete more than a certain number, I had to become a paid member, and it didn't work well in my environment, so I decided to prepare it myself.
In addition, since I touched both Twitter API and Python for the first time, there may be usages that are out of the ordinary. If you want to refer to it, please do one thing at your own risk.
Delete all tweets in your Twitter account.
OS:Windows 10 Language: Python 3.8.3
I applied for use by referring to this site. https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/ https://qiita.com/kngsym2018/items/2524d21455aac111cdee
Apply with the account you want to delete tweets. As soon as I applied, I received an email. Click Confirm Address in the email to use the dashboard and create app information. In the article I referred to, it seems that there was an exchange of usage confirmation, but I did not have such a thing. It may be because the intention of using the app was just "learning and erasing my tweets". The application passed without any problem even in poor English.
I downloaded and installed the one that suits my environment. https://www.python.org/downloads/windows/
Open a command prompt and install the library.
py -m pip install python-twitter
The following two have been added to the environment variable Path. The order is reversed.
[Place of installation]\Python38
[Place of installation]\Python38\Scripts
Get an archive of tweet data from your Twitter account. The procedure was written in an easy-to-understand manner on this site. https://passion-blue.com/twitter-account-backup
When you unzip the obtained archive, you will find tweet.js in the data directory. To make it json format, I opened it, deleted the first line "window.YTD.tweet.part0 =", and saved it as tweet.json. (It's just a personal tool, you'll rarely use it, and you'll do it manually.)
# -*- coding: utf-8 -*-
import twitter
import json
import signal
#Ctrl on the way+Description to be stopped by C
signal.signal(signal.SIGINT, signal.SIG_DFL)
#Information for using the Twitter API
api = twitter.Api(
consumer_key='YOUR_CONSUMER_KEY',
consumer_secret='YOUR_CONSUMER_SECRET',
access_token_key='YOUR_ACCESS_TOKEN_KEY',
access_token_secret='YOUR_ACCESS_TOKEN_SECRET'
)
screen_name = 'YOUR_TWITTER_ID'
#Read json file
json_open = open('tweet.json', 'r', encoding="utf-8_sig")
json_load = json.load(json_open)
for v in json_load:
try:
#Specify the ID and delete
api.DestroyStatus(v['tweet']['id'])
print("delete:" + v['tweet']['id'])
except:
#If the deletion fails because it has already been deleted
print("error :" + v['tweet']['id'])
I referred to this article. https://qiita.com/aeas44/items/a5b82da69b64b32aada4 https://qiita.com/junkoda/items/50ca8604ecbb04e9f772
Tokens can be found in the Twitter Developers app-> Details-> Keys and tokens.
Place the tweet.json created in 4. in the same directory as the script (app.py) and execute it.
python app.py
The deleted ID and the failed ID are spit out to the console one after another. I didn't measure the time properly, so it's a sensory value, but I think it took about an hour to delete about 10,000 tweets at a pace of several tweets per second.
At first, I got the token with an account other than the Twitter account I wanted to delete, so I got "You may not delete another user's status." At runtime. So, I reacquired the tweet with the account I want to delete. That's right ... but how do paid deletion tools and the like realize the deletion of tweets by applicants ...? It may be possible to do well by performing Twitter authentication. Anyway, the purpose was achieved.