-
-
Save n-eq/d6bd3438cd87ab419888edbc4dc1f0f5 to your computer and use it in GitHub Desktop.
#!/bin/python3 | |
# Fork of https://gist.github.com/davej/113241 | |
# Requirements: | |
# - twitter API credentials (replace the correponding variables) | |
# - tweet.js file you get by extracting your twitter archive zip file (located in data/) | |
# License : Unlicense http://unlicense.org/ | |
import tweepy | |
import | |
import json | |
from datetime import datetime, timedelta | |
from dateutil import parser | |
consumer_key = '' | |
consumer_secret = '' | |
access_token = '' | |
access_token_secret = '' | |
days_to_keep = 365 | |
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) | |
auth.set_access_token(access_token, access_token_secret) | |
api = tweepy.API(auth) | |
utc = pytz.UTC | |
cutoff_date = utc.localize(datetime.now() - timedelta(days=days_to_keep)) | |
fp = open("tweet.js","r") | |
fp.seek(25) # skip to '[' which is the beginning of the json part | |
myjson = json.load(fp) | |
for i in range(len(myjson)): | |
parsed_date = parser.parse(myjson[i]['tweet']['created_at']) | |
# print(parsed_date) | |
if parsed_date < cutoff_date: | |
# beware, this operation is irreversible | |
try: | |
# print("Destroying tweet %s" % myjson[i]['tweet']['id_str']) | |
api.destroy_status(myjson[i]['tweet']['id_str']) | |
except Exception as e: | |
print("There was an exception: %s." % e) | |
pass |
Eventually got it to work and managed to delete over 40,000 tweets but i have got about 2,000 left that just won't go away and have the days to keep set at 0.
And to encounter some limitations, where the script ran for hours and no tweets (or very few were deleted, about 10 to 20).
Ok i got it working, adding encoding='UTF-8'
in fp = open
after i have problem with unicode decode error, and changing the tweet.js variable leaving [
only and it worked.. Thanks for the awesome code!
Hi @drownranger, thanks for the comment. Glad you managed to make it work!
Script updated to take into account your comments : added more context and fixed the issue with json parsing.
Thanks everyone! (especially @Achifaifa @drownranger)
Hi!! I'm a totally beginner here. How do I run it? I create a folder, put my tweet.js file there together with your script. How do I run it? In CMD, it doesn't work :(
Hi @Carolinewk, no worries.
There are two main requirements actually:
- You need to get access to Twitter API, navigate http://apps.twitter.com/ and create an app from your account. You'll then need to fill some basic information but this operation is quite straightforward. Upon success, you'll get 4 elements (consumer_key, consumer_secret, access_token, access_token_secret). Replace with the corresponding values in lines 15-19, make sure you are the only one to know the values.
- You need to download your personal twitter archive. For this, please see https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive. Once downloaded, you'll get a zip file, unzip it and extract a file named tweet.js located in data/.
Once you completed these 2 steps you'll just have to configure and run the script above.
Are you using windows ?
Hi @Carolinewk, no worries.
There are two main requirements actually:
- You need to get access to Twitter API, navigate http://apps.twitter.com/ and create an app from your account. You'll then need to fill some basic information but this operation is quite straightforward. Upon success, you'll get 4 elements (consumer_key, consumer_secret, access_token, access_token_secret). Replace with the corresponding values in lines 15-19, make sure you are the only one to know the values.
- You need to download your personal twitter archive. For this, please see https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive. Once downloaded, you'll get a zip file, unzip it and extract a file named tweet.js located in data/.
Once you completed these 2 steps you'll just have to configure and run the script above.
Are you using windows ?
Yeah. I'm using windows. Actually I did everything and the keys are already with me. I just can't run the code haha, pretty stupid but It still very confusing to me (I have no experience with python).
I think it's supposed to configure it with IDLE, right? I just put the keys there.
I created a folder, put your script there (deloldtweets.py), edited it with the IDLE (putting the keys in the beginning), and finally, put the tweet.js file there.
So, in the folder there's only these 2 files. But I don't know how to run them. I tried CMD and Powershell. With cmd: I put (cd + folder location) and then python deloldtweets.py. It didn't work. And with powershell I did the same. Nothing happens :(
Sorry if it's not clear.
Hi @Carolinewk, no worries.
There are two main requirements actually:
- You need to get access to Twitter API, navigate http://apps.twitter.com/ and create an app from your account. You'll then need to fill some basic information but this operation is quite straightforward. Upon success, you'll get 4 elements (consumer_key, consumer_secret, access_token, access_token_secret). Replace with the corresponding values in lines 15-19, make sure you are the only one to know the values.
- You need to download your personal twitter archive. For this, please see https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive. Once downloaded, you'll get a zip file, unzip it and extract a file named tweet.js located in data/.
Once you completed these 2 steps you'll just have to configure and run the script above.
Are you using windows ?Yeah. I'm using windows. Actually I did everything and the keys are already with me. I just can't run the code haha, pretty stupid but It still very confusing to me (I have no experience with python).
I think it's supposed to configure it with IDLE, right? I just put the keys there.
I created a folder, put your script there (deloldtweets.py), edited it with the IDLE (putting the keys in the beginning), and finally, put the tweet.js file there.So, in the folder there's only these 2 files. But I don't know how to run them. I tried CMD and Powershell. With cmd: I put (cd + folder location) and then python deloldtweets.py. It didn't work. And with powershell I did the same. Nothing happens :(
Sorry if it's not clear.
Okay, it might be tricky as I don't have a Windows machine on hand.
Basically you're all set once you have defined the parameters in lines 15-19 and put the tweet.js file in the same directory.
Can you try running execfile('deloldtweets.py')
from the IDLE shell?
Hi @Achifaifa,
Thanks for the great feedback!
I'm glad you managed to use the script successfully. I'll publish a modified version of the gist to take into account your input.
By the way, the variable name is
window.YTD.tweet.part0
.Kind regards.