Help us understand the problem. What is going on with this article?

ある時点より昔のツイートを消す

黒歴史を消したいのに、黒歴史クリーナーが最新の3200件しか対応していない。
最新のツイートは消したくないし、消したいツイートは3200件より昔という状況だったのでしぶしぶ書く。

スレッド処理してないので時間かかります。まぁどうせ実行して放置するのでいいかなと思って。
早くやりたいなら年月ごとに1スレッド作って配列をスライスして渡せばいいんじゃないかな(適当)

twitterのアカウント設定からデータの一括DLを要求すると圧縮ファイルがあるので、その中の"tweet.js"を使います。
ファイル先頭が
window.YTD.tweet = [ { 又は
window.YTD.tweet.partN = [ { ...
となってるので、変数名を消して
[ { ...
にします。

ツイート数が多い場合はファイルが"tweet.js", "tweet-part1.js", "tweet-part2.js", ... になってるようです。(1ファイル上限100MBっぽい)それぞれのファイルに対してスクリプトを実行するか、メモリに余裕があれば一気に全部読み込んでください。

ツイート削除APIはリミットがかかってないようなので、スリープは挟まなくていいようです。ただしあまりにも多くのスレッドを生成して削除するとDoS攻撃まがいになるのでエラー返されるかも。のんびりバックグラウンドで実行させるのがいいでしょう。

destroy_tweets.py
#!/usr/bin/env python3

from datetime import datetime
import sys
import json
import tweepy

# https://developer.twitter.com/apps
key = ""
secret_key = ""
token = ""
secret_token = ""

auth = tweepy.OAuthHandler(key, secret_key)
auth.set_access_token(token, secret_token)
api = tweepy.API(auth)

with open('tweet.js', encoding='utf_8') as f:
  tweetsjson = json.load(f)
  for tweet in tweetsjson: # 2018年4月1日以前のツイートを消したい場合
    if datetime.timestamp(datetime(2018, 4, 1, 0, 0, 0)) > ((int(tweet['id']) >> 22) + 1288834974657) / 1000:
      try:
        api.destroy_status(int(tweet['id']))
      except:
        print(tweet['id'], file=sys.stderr)

mix64
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした