All of which are American dreams
Posted 3 years and 1 month ago
Title lifted from “Know Your Enemy”.
The results of the US presidential election last Tuesday shocked me. I checked Twitter to find that my entire feed felt the same. Again. Oops, I created a comfortable echo-chamber for myself.
Social news algorithms have been under intense scrutiny over the past week. I wanted to see what other people’s social media bubbles looked like, so I wrote a little shell script1.
I’m not interested in building empathy for racists. I am interested in improving my own awareness. This tool displaces me from the narrative I chose and delivers me from opinions I agree with. It’s helped me realize just how powerful a curated social feed can be as a tool of persuasion. Also, wow. People who follow Glenn Beck seem to follow a lot of porn. Who knew?
If you want to peer into someone else’s Twitter feed, the following might help2:
#!/bin/bash
# Create a private Twitter list out of someone else's feed so you can read it.
# The name "ditter" is like "ditto" plus "Twitter" ha ha get it?
#
# Requires Python, GNU coreutils, and https://github.com/sferik/t
#
# Installation:
#
# $ chmod 777 ditter.sh && mv ditter.sh /usr/local/bin/ditter
#
# Usage:
#
# $ ditter <username> [<list_name>]
THEIR_USERNAME=${1}
MY_USERNAME="$(t whoami | grep '^Screen name' | grep -o '[^@]*$')"
LIST_NAME=${2:-"$THEIR_USERNAME-feed"}
t list create --private "$LIST_NAME"
# I aliased GNU split to "gsplit" on my Mac. You may need to change this.
t followings "$THEIR_USERNAME" \
| gsplit -l 100 --filter="xargs t list add \"$LIST_NAME\""
python -mwebbrowser "https://twitter.com/$MY_USERNAME/lists/$LIST_NAME"
It’s not pretty, but it works for me3. Here are some usage examples:
# View the feed of a random person who follows the "FOX Files".
# Warning: You're about to view a complete stranger's feed. NSFW.
t followers foxfilesfnc | gshuf | head -1 | xargs ditter
# View the feed of the last person to use the Make America Great Again hashtag.
t search all "#maga" -cn 1 | tail -1 | cut -d, -f3 | xargs ditter
I’m in the habit of quietly throwing projects like this onto my lab page, but enough people have expressed frustration in the past week to make this share-worthy. Hope it helps!
Footnotes
Twitter used to actually offer this as part of their official client. They removed the functionality in 2013. ↩
MacOS comes loaded with BSD utils, so I grabbed the GNU equivalents with
brew install coreutils
. That’s whatgsplit
andgshuf
are. ↩Restrictions apply:
- Twitter has a longstanding issue where bulk lists created through the API might be missing members. It’s nothing a little
while
loop can’t fix, and even an incomplete list can be enough. t
has its own longstanding issue: it runs up against rate limits if you use it to fetch a large list of followers. This one probably requires a patch / PR.
- Twitter has a longstanding issue where bulk lists created through the API might be missing members. It’s nothing a little