2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

過去ツイ(黒歴史)をPythonで消し去る

Last updated at Posted at 2022-05-01

こんにちは、趣味Androidエンジニアのmomoritoです。
今回はPythonを利用して、自身の過去のツイート(黒歴史)を削除します。

事前に必要なもの

  • Pythonの動作環境(筆者はPython3.8.1)
  • Pythonを書くエディタのようなもの(筆者はVSCode)
  • API_KEY,API_SECRET,TOKEN_KEY,TOKEN_SECRETの4つ
    ※本記事ではAPIキー類の取得方法は割愛します。「twitter api 取得」あたりでググると先人の記事がいっぱい出てきます。
  • 自身の全Twitter履歴
    ※ツイートIDを手に入れるために必要です。「twitter 出力」あたりでググるとこれまた大量に記事が出てきます。
    ※ツイートIDを既に把握しているのであれば、全Twitter履歴は必要ありません。
    ※ツイートIDのみを抽出してCSV化[tweetList.csv] しています。(後述)

とりあえずコード

削除自体はapi.DestroyStatus(tweet)部で行っています。
削除に必要なツイートIDはCSVから読み込んでいます。

removeTweet.py
#適宜pip installしてね!
import twitter 
import csv

# あんまりコードに大切なキーを直書きするのは宜しくないんですが、個人利用の範囲なので放っておきます。
CONSUMER_API_KEY ="あなたのAPI_KEY"
CONSUMER_API_SECRET ="あなたのAPI_SECRET"
ACCESS_TOKEN_KEY="あなたのTOKEN_EKY"
ACCESS_TOKEN_SECRET = "あなたのTOKEN_SECRET"


api = twitter.Api(
    consumer_key=CONSUMER_API_KEY,
    consumer_secret=CONSUMER_API_SECRET,
    access_token_key=ACCESS_TOKEN_KEY,
    access_token_secret=ACCESS_TOKEN_SECRET
)

# 以下のコードで削除。
with open('tweetList.csv',encoding='utf-8', mode='r') as f:
    reader = csv.reader(f)
    for tweet in reader:
        # エラー時の処理停止回避用の try-except
        try:
            api.DestroyStatus(tweet[0])
            print("削除 " + tweet[0])    
        except:
            print("失敗 " + tweet[0])    

# 終了の宣言
print("done")

(補足)DestroyStatus部分について

DestroyStatus()で任意のツイートIDを削除できます。

removeTweet.py
api.DestroyStatus(任意のツイートID)

ちなみにブラウザ上で個別にツイートIDを調べる方法は下記のとおり。
tweetid.png

今回はツイートIDをCSVにまとめて突っ込んでいます。(これを作成するときに、削除しないツイートを取り除くことも可能)
1列目にただツイートIDを列挙するのみのシンプルなCSVです。
スクリーンショット 2022-05-01 19.12.27.png

全Twitter履歴を取得したときにjson形式で出力されるので、上手くparseできればそのまま使えるのですが、私は何故か上手く行かなかったので、力技で処理しました。
ただ、CSV作成の際にツイートIDの桁数が膨大で手間取ったり…jsonのままで扱えるのであればそれが一番だと思います。
CSVへの力技の詳細はいつかまとめるかも?

最後に

今回はいわゆる黒歴史諸々を消し去るため+Pythonをイジるために書いてみました。
ただツイートを消すだけなら、黒歴史クリーナーなんかが有名ですし、ラクですね。

今回は概ね26,000ツイートを削除したため、プログラム自体も1時間半ぐらい動き続けて削除することができました。
これで炎上した際に過去をほじくり返されても安心ですね!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?