Miguel and Dante in Coco

MagicRealismBot — Greatest Hits

In all the news about the bane of bots on Twitter and social media it’s easy to forget the bots that make us smile and add a bit of random beauty to our lives. One of my all time favorites is MagicRealismBot created by the brother & sister team, Chris and Ali Rodley. If you haven’t seen it before go take a look. It’s a remarkable bot, because of the palette of concepts it draws from, and the seamless ways that they are combined. You can read a little bit about how the bot works over at Abandon Normal Devices and at Asymptote.

Every time I notice a new MagicRealismBot tweet in my timeline I wonder about the backlog of tweets, and briefly wander through them. As of today there have been 14,401 tweets since September 2015. If I did the math right that’s an average of 15.8 tweets per day. Today the bot has 90,280 followers, and many people routinely retweet and like the short compositions. I thought it could be fun to collect the tweets and list out the top 25 in terms of how many likes they received.

Likes are less performative than retweets. Nobody really sees your like like they will your retweet. They are quieter, and trace an immediate reaction or emotion to the tweet, that exists apart from the urge to share it with your followers. So I wanted to list the top 25 tweets in order of their likes. For more about the process I used, and the data set see below, but I thought I’d get to the fun part (the tweets) ASAP.

Aside: the like counts are included in the tweet caption since they are fluid and constantly changing.

1. (3,778)
2. 3,484
3. 3,278
4. 2,723
5. 2,493
6. 2,245
7. 2,116
8. 1,736
9. 1,678
10. 1,646
11. 1,643
12. 1,620
13. 1,599
14. 1,591
15. 1,523
16. 1,429
17. 1,421
18. 1,414
19. 1,393
20. 1,371
21. 1,337
22. 1,334
23. 1,332
24. 1,307
25. 1,306

Great right?


To gather the data I used Justin Littman’s twitter-scraper which automates a browser to retrieve the timeline of 13,864 tweets and writes out the tweet identifiers for each tweet.

% python twitter_scraper.py --since 2015–07–11 MagicRealismBot > ids.txt

Then I used the Documenting the Now’s twarc utility to turn the ids back into the raw JSON that Twitter make available from its API:

% twarc hydrate ids.txt > tweets.jsonl

Ffinally I turned the tweet JSON data into a CSV file with four columns (URL, Text, Retweet Count, Like Count) that I could upload into as a spreadsheet into data.world:

jq -r '[ \
"https://twitter.com/MagicRealismBot/status/" + .id_str, \
.full_text, \
.retweet_count, \
.favorite_count \
] | @csv' tweets.jsonl > tweets.csv

I imagine there’s an easier way to do this — so if you know of one please let me know … and keep on following the magic ✨