Twitter API と Python でツイートを一括削除

Twitter API と Python を利用して、過去のツイートを一括削除することができます。
Twitter API の概要と申請方法は、以下の記事をご参照ください。
関連記事

Twitter API を利用すると、Twitter のアプリケーションを利用せずに、ツイートやタイムラインの取得ができます。例えば、Python を使って、Twitter のタイムラインを取得してテキストに保存したり、過去の Tweet […]

Twitter データのダウンロード

まずはじめに、Twitter データのアーカイブをダウンロードします。
Twitter にアクセスして、「設定とプライバシー」>「アカウント」>「データのアーカイブをダウンロード」から「アーカイブのリクエスト」をクリックします。
約24時間後、Twitter から アーカイブのダウンロードリンクが貼られたメールが届くので、ダウンロードして任意の場所に解凍します。

tweet.js を編集

アーカイブを解凍すると「tweet.js」がありますので、文頭の「window.YTD.tweet.part0 =」を削除して保存します。

ライブラリのインストール

python-twitter をインストールします。

pip install python-twitter

Python スクリプトサンプル

全てのツイートを削除するサンプルです。以下のサイトを参考にさせて頂きました。

Qiita

黒歴史クリーナー の全ツイート削除機能の調子が悪い(全ツイートダウンロードファイルのアップロードが失敗する)ので、pyt…

import twitter
import json

# Twitter API KEY
api = twitter.Api(
    consumer_key='*********************',
    consumer_secret='*********************',
    access_token_key='*********************',
    access_token_secret='*********************'
)

# tweet.js を読み込み用に開く
with open('tweet.js', encoding='utf-8', mode='r') as f:
    tweets = json.load(f) # tweet.js を JSON ファイルとして読み込み変数(tweets)に格納
    for tweet in tweets:
        twid = tweet['tweet']
        try:
            api.DestroyStatus(twid['id']) # ツイートを削除
        except Exception as exc:
            print('ツイートの削除に失敗しましたが処理を続行します。エラー:{}'.format(exc))
    print('ツイートの削除処理が完了しました。')
注意:Developer Portal で App permissions が Read Only となっていると、次のエラーがでて失敗します。

Read-only application cannot POST.

上記エラーがでた場合は、app permissions を Read Only を Read and Write に変更することで解決します。

なお、変更後、Access Token and Secret を再生成する必要がありますのでご注意ください。[1]Comsumer Key は再生成不要です。

関連記事

Twitter API を利用すると、Twitter のアプリケーションを利用せずに、ツイートやタイムラインの取得ができます。例えば、Python を使って、Twitter のタイムラインを取得してテキストに保存したり、過去の Tweet […]

以上

脚注

脚注
1Comsumer Key は再生成不要です。