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


この記事が気に入ったらサポートをしてみませんか?