X(旧Twitter)のツイート一括削除プログラム
著者(しろくまくん)
Twitterのツイートを削除するのって地味にめんどくさいですよね。右上の点々をクリック→「ポストを削除」を選択を何度も繰り返しなので。
そこで、API不要で自動削除するプログラムをpythonで作りました。
事前準備
・PCを用意
・pipやpythonをインストール
※インストール確認は、「pip --version」「python」をターミナル実行して○.○って表示されればOK。
・twikitのインストール(pip install twikit)
注意点
完全自己責任でお願いします!
botやプログラムをかなり使い回していますが、今まで特に何かの問題が発生したことはありません。が、いつどうなるか俺にも不明なので自己責任でお願いします。
プログラムコード
import asyncio
from twikit import Client
###########################################
USERNAME = 'ユーザーID(@以下)'
EMAIL = 'メールアドレス'
PASSWORD = 'パスワード'
client = Client('ja-JP')
async def get_user_id():
user_id = client.get_user_by_screen_name(USERNAME)
return user_id
async def get_user_tweets(user_id):
tweets = user_id.get_tweets('Replies', count=20) #Tweets /Replies/Media/Likes
return tweets
async def delete_replies_tweets(tweets):
for tweet in tweets:
client.delete_tweet(tweet.id)
print("【"+tweet.text+"】を削除しました。")
return 0
async def main():
client.login(
auth_info_1=USERNAME,
auth_info_2=EMAIL,
password=PASSWORD
)
user_id = await get_user_id()
tweets = await get_user_tweets(user_id)
result = await delete_replies_tweets(tweets)
if __name__ == "__main__":
asyncio.run(main())
基本的には下記を変更し、プログラムを実行すれば自動的に20件削除される。
USERNAME = 'ユーザーID(@以下)'
EMAIL = 'メールアドレス'
PASSWORD = 'パスワード'
200件削除したい場合、下記のようなループ文を組み込めばOK。
400件ならrange(20)に変更。
twitter運営プログラムにbot判定されたくない場合、下記のような待ち処理を入れるのがおすすめ。
for _ in range(10):
tweets = await get_user_tweets(user_id)
await delete_replies_tweets(tweets)
await asyncio.sleep(10)
実行方法
1.ターミナルでファイル保存場所へ移動
2.下記コマンドを実行
python ファイル名.py
この記事が気に入ったらサポートをしてみませんか?