archive_junta.py, the Fascist-Tweet-Archiving Script

Overview

The archive_junta.py script runs on one of my spare laptops, constantly listening for new tweets on certain Twitter accounts associated with specific members of the current American corporatist junta. When new tweets on those accounts occur, it uses the Internet Archive to create an offsite copy of those tweets. At the beginning, it just watched Donald Trump's Twitter accounts; but I've been gradually expanding, in a non-systematic way, the scope of its areas of attention.

The full list of accounts currently archived the operation of this script on my spare laptop is:

AccountDate archiving beganDropbox index
(most up-to-date)
GitHub index
(easier to read)
Search
(via Internet Archive)
Notes
@POTUS1 Feb 2017 here here here 45th President of the United States
@realDonaldTrump1 Feb 2017 here here here Personal account of Donald Trump, who is unfortunately the president of the United States
@GovPenceIN22 Feb 2017 here here here Pence's account that he used while governor of Indiana
@mike_pence22 Feb 2017 here here here Personal account of Mike Pence, vice president of the United States
@VP22 Feb 2017 here here here Vice President of the United States
@DanScavino23 Mar 2017 here here here Personal account for Trump's director of social media
@Scavino4523 Mar 2017 here here here Director of social media for Donald Trump
@FLOTUS7 Apr 2017 here here here First lady of the U.S.
@IvankaTrump7 Apr 2017 here here here Daughter to the junta leader, wife of his senior adviser, and (generally speaking) minister without portfolio
@IvankaTrumpHQ7 Apr 2017 here here here Business account for the Glorious Leader's daughter
@MELANIATRUMP7 Apr 2017 here here here PERSONAL ACCOUNT OF THE FIRST LADY OF THE U.S., WHO FOR SOME REASON LIKES TO PUT HER NAME IN CAPITAL LETTERS
@AshLeeStrong7 May 2017 here here here Press secretary for Paul Ryan
@jaredkushner7 May 2017 (has not yet tweeted) Senior adviser to the POTUS, and husband of his more famous daughter
@PRyan7 May 2017 here here here Personal account for the Speaker of the House
@SpeakerRyan7 May 2017 here here here Paul Ryan, Speaker of the U.S. House of Representatives
@JessicaDitto4521 May 2017 here here here White House Deputy Director of Communications
@KellyannePolls21 May 2017 here here here Kellyanne Conway, counselor and assistant to the president
@PressSec21 May 2017 here here here Sarah Sanders, who has stopped using her maiden name as a middle name for some reason, perhaps because polls show a press secretary should tone down the folksy identity construction. Or perhaps not. Who knows?
@Reince21 May 2017 here here here Reince Preibus, former White House Chief of Staff
@Reince4521 May 2017 here here here Reince Preibus, former White House Chief of Staff
@seanspicer21 May 2017 here here here Sean Spicer, former press secretary
@StephenMillerAL21 May 2017 here here here Assistant to the president and senior adviser for policy
@WhiteHouse4 Jun 2017 here here here Official account for the White House, whatever that means exactly
@ElaineChao22 Jun 2017 (has not yet tweeted) Secretary of Transportation
@EPAScottPruitt22 Jun 2017 here here here EPA Administrator Scott Pruitt
@FirstLadyIN22 Jun 2017 here here here Second Lady Karen Pence
@RealBenCarson22 Jun 2017 here here here HUD Secretary Ben Carson. Also he shares this account with his wife, which is not at all creepy, and is totally appropriate given the Twitter handle on the account.
@RepTomPrice22 Jun 2017 here here here Dr. Thomas Price, Secretary of Health and Human Services
@SecElaineChao22 Jun 2017 here here here Secretary of Transportation
@SecondLady22 Jun 2017 here here here Second Lady Karen Pence
@SecPriceMD22 Jun 2017 here here here Dr Thomas Price, Secretary of Health and Human Services
@SecretaryAcosta22 Jun 2017 here here here Labor Secretary Alexander Acosta
@SecretaryCarson22 Jun 2017 here here here HUD Secretary Ben Carson
@SecretaryRoss22 Jun 2017 here here here Wilbur Ross, Secretary of Commerce
@SecretarySonny22 Jun 2017 here here here Sonny Purdue, Secretary of USDA
@SecretaryZinke22 Jun 2017 here here here Ryan Zinke, Secretary of Interior
@StephGrisham4522 Jun 2017 here here here Stephanie Grisham, Press Secretary & Deputy Director of Communications for Melania Trump
@TomBossert4522 Jun 2017 here here here Thomas Bossert, Homeland Security Adviser
@WilburRoss22 Jun 2017 here here here Wilbur Ross, Secretary of Commerce
@Scaramucci29 Jul 2017 here here here Anthony Scaramucci, who spent ten golden glorious perfect days as White House Director-of-Communications
@stevenmnuchin118 Aug 2017 here here here Treasury Secretary
@BetsyDeVos11 Sept 2017 here here here (apparently personal) account for the secretary of education
@BetsyDeVosED11 Sept 2017 here here here secretary of education
@GeneralJFKellly11 Sept 2017 here here here White House Chief of Staff
@GovernorPerry11 Sept 2017 here here here Rick Perry's account left over from when he was governor of Texas
@Linda_McMahon11 Sept 2017 here here here Personal account for the SBA administrator
@MickMulvaneyOMB11 Sept 2017 here here here Director of the Office of Management and Budget
@nikkihaley11 Sept 2017 here here here US Ambassador to the United Nations
@SBALinda11 Sept 2017 here here here Administrator of the Small Business Administration
@SecretaryPerry11 Sept 2017 here here here Rick Perry, Secretary of Energy
@SecShulkin11 Sept 2017 here here here Secretary of Veterans Affairs
@SenDanCoats11 Sept 2017 here here here Director of National Intelligence

My intent is to get a neutral third party to create publicly accessible backups of the tweets before they can be deleted, because a neutral third-party archive is a more credible source than a screenshot that I produced on my own computer and totally swear I didn't alter. (It's also easier to produce automatically.)

Hey, there's someone who should be in the list above, but isn't!

Please contact me on Twitter and give me their verified Twitter account names.

Where can I see the tweets archived by your script?

The script produces an index for each account it tracks as it runs. These indices are in the .csv format, which is easily importable into any spreadsheet program; they are hosted both on Dropbox and at the project's GitHub page. (The Dropbox-hosted copies should usually be automatically updated within a minute or so; the GitHub-hosted copies are easier to read from the web, but are usually only updated about once a day.) You can also search through the Internet Archive-hosted tweets using the Internet Archive's interface. Links to all of these options are available in the table above.

If you are unhappy with the display options, it's probably wisest to download the current .csv from Dropbox and search through it using your favorite spreadsheet program. Currently, it's not possible to search deleted tweets from this page, but if you want make an offer to finance hosting such a service, we can talk.

If you want to see a tweet from me every time the script detects a deleted tweet from the junta, you can follow me on Twitter.

Why would you even bother to get a machine to archive these tweets in the first place?

Because words matter, especially the words spoken by elected officials; they have wide-ranging effects even after their material presence has evaporated into the ether. Donnie's profound contempt for facts and his repeated insistence on inventing them are both troubling, and I suspect that there's a connection with the surprisingly frequent deletion of his own posts on Twitter.

When The Donald deletes a tweet, that doesn't mean that the deleted words have had no effect; they still influence the thoughts and behavior of (at least some of) his supporters. All it really means is that the effect is harder to trace back to the suddenly absent cause. My thought is that producing an archive that's accessible to the public at an external source helps to reinforce, in a small way, the underlying discursive structures upon which a functioning democracy depends.

What do you think it means that Little Don-Don and his friends delete their tweets?

I think that depends entirely on which tweet we're talking about.

You will note that I have not claimed that tweets should never be deleted, nor that the removal of any particular post necessarily means anything that I'm qualified to talk about. You may also note that I have sometimes deleted my own tweets, usually—but not always—to correct a typographical error. (But then, I am not a government official, and so the standard for me is lower than it is for someone who has been given a large amount of public trust.) In any case, I think that preserving an archive of what our current president and his cadre say is very important, and it's relatively easy to do.

Should I myself run a copy of this script?

Maybe! As for me, I'm just running the script on a spare laptop in my apartment, and that's not a perfect setup: my electricity or Internet service could go out, or the laptop could overheat, or its old hardware might be running the script too slowly to catch a tweet before it's erased, or any number of other things could go wrong. Having several people—certainly more than a dozen or so would be overkill—all running this script (or taking similar actions) would provide a level of redundancy that would help to make always capturing every tweet at least once much more likely.

On the other hand, if way too many people decide to volunteer in this way, that would unnecessarily burden the infrastructures of both the Internet Archive and Twitter for little to no practical benefit. So my suggestion is this: if you plan to run another copy of this script, let me know (hit me up on Twitter), and I'll keep an up-to-date count (and/or tally) here.

To the best of my knowledge, there are currently no other people running this script remotely.

Given all of that, you can download the script on GitHub, if you'd like.

Does this script ensure there is a complete archive of all of Trump's (and the others') tweets?

No. There are at least two groups of tweets that the script is not archiving:

  1. Very old tweets. The Twitter API only allows access to someone's last 3200 or so tweets, so the first tweet this script archived was probably produced by Donnie somewhere around March 2016. I have not made any attempt to go back and algorithmically save older Trump tweets, in part because that would require a totally different methodology, and quite possibly substantial manual intervention. (There are older Trump tweets archived on the Internet Archive, but they were not saved by this script.)
  2. Tweets that both appear and disappear while the script is not running. Normally, the script runs constantly, but if the power goes off in my apartment, or if the script crashes, and Donnie tweets and then deletes that tweet before the script runs again, then the tweet won't get archived. Similarly, it is possible that a tweet could get noticed but still disappear before it can be archived.

There are at least two other groups of potential problems that might, in theory, keep a tweet from being archived:

  1. The Twitter API could, in theory, not report that a tweet was posted, or could do so with a large enough delay to allow Donnie or his goony henchmen to delete it before it could be archived.
  2. It is possible, in theory, that Creepy Don or his servile brownshirt brigade might interfere with one or more of the services required for this to work.

I don't currently have cause to believe that anything has been missed for any of the reasons above except for very old tweets ... but then, if it did, how would I know? (This is part of why the reason why the redunancy of several other people running the script would be a good thing.)

Were all of the tweets I can see on the Internet Archive for these accounts saved by your script?

No. Anyone can save a web page to the Internet Archive at any time, and I am certainly not the only person who has decided to have the Internet Archive save copies of (some of) the junta's tweets. (Though, to the best of my knowledge, I am the first to think that doing so systematically is a good idea.)

How does it work?

Head on over to the GitHub project for more info!