i only make bots for the mountain goats


cross-posted on Medium

I started listening to The Mountain Goats sometime around junior year of high school. I can’t be sure of exactly when, but I’m pretty sure of how. In 2012, I read The Fault in Our Starsby John Green; after the finishing the book, I found my way to Green’s other works, including his co-hosted YouTube channel vlogbrothers. During that year, I watched hundreds of videos from the vlogbrothers channel, getting to know John and his brother, Hank through their various YouTube antics.

John Green is an avid fan of The Mountain Goats, as stated in multiple Q&A videos on the channel and in his use of the band’s music in several tributes. Green’s love of the band was my first introduction to their music, as it was for many people my age. From Green’s favorite, “Up the Wolves,”I listened to the rest of The Sunset Tree, followed by Tallahassee(arguably the band’s best-known work).

John Darnielle and band have been pretty important to me over the past 6 years:

    • Led me to my college roommate (we bonded over Tallahassee)
  • Gave me stability moving out of apartments (“Genesis 3:23”) and into new ones (listening to Gothsmy first weekend in D.C.)

…and most recently, gave me fodder for Twitter bots.

But we’ll get to that.

What fascinates me most is the sheer amount of content produced by the band. In their 27-year history, there are over 1100 setlists, 600 original songs, 24 members or collaborators, 15 studio albums, 19 EPs, 4 singles (as of today)…and that’s just quantitatively. Their music spans from low-fidelity recordings popular in the 90s to polished full-band numbers; emotionally resonant lyrics like

“I am drowning, there is no sign of land / You are coming down with me, hand in unlovable hand / And I hope you die / I hope we both die”

to the simplistic

“I love the cows/I love the cows/I love the cows, yeah/I love the cows”.

Their career is a collection with datasets, recordings, feelings, and memories — and an extremely complex and impressive collection at that.

I’m not the only one to have seen the possibility for inquiry here. The band’s fandom is well-known for its obsessiveness, and the band’s efforts to establish a relationship and community with their audience.

As a dataset, the Mountain Goats have served as fodder for many digital projects. Best known is the Kyle Barbour’s The Annotated Mountain Goats, an early version of Genius-style annotation and referencing for the band’s discography. The fan wiki works in tandem of with Barbour’s project, including a list of every concert they’ve ever performed for each song, as well as John’s discussion of certain songs. Internet Archive hosts many live performances. Setlist.fm’s statistics contain detailed information regarding songs, tours, and covers.

There are two active maps of the discography, highlighting all the locations referenced. One focuses on lyrics, while the other sorts places by type of location. (Note the clustering in southern California, where Darnielle lived for a time & where the band was formed.)

I’m not even the only one making bots for the band — a cursory twitter searchhighlights a few.

Knowing the endless potential for using the Mountain Goats for digital projects, I thought making Twitter bots would be a good use.

I love Twitter bots. I love the creative uses of content for presentation on Twitter — some of them serious (like @Every3Minutes) some of them funny (like @MagicRealismBot), some of them just out there (@NYT_first_said). Despite being procedural and automated, bots have a personality of their own that attract attention and engagement from users.

In his piece for Kill Screen, Daniel Fries highlights the digital-era obscurity of the band: “this digitization of ephemera preserves the work but destroys its transience.” Fries has a point about this, and my projects are no exception. In Élika Ortega’s “How To Make a Twitter Bot in 1 hour or less,” she quotes Leonardo Flores for the potential of bots in codifying bodies of work into algorithms fills them with potential for exploration. Similarly, Allison Parrish notes the uncreative remixing of bots makes them transient once more — it is not the same existence or categorizing of the band each time, but an approach to continually reexamine the text or data. In making the datasets & code that you’ll see below, I have perpetuated the process of digitizing and solidifying the Mountain Goats canon.

But I also feel that in making Twitter bots, the transient nature of the band’s ephemera is highlighted rather than destroyed. Tim Highfield points out the imagined geographies of Twitter bots as visual interventions within a user’s feed. “Thrown into existence and then gone again,” a bot’s reuse of the material attempts to recreate the disposality of the pre-internet era.

There’s another point in Fries’s piece that makes me look at Twitter bots as a solution to the balance preservation and transience. Darnielle never plans to make a live album — as Fries extrapolates, Darnielle supports the proliferation of fan versions of the work over the definitive live version he might create. In making bots, I find the reuse and decontextualization actually plays with their transience? A lyric is part of a song, but it is also a connection — the interconnected dataset of making the Mountain Goats canon and then throwing it back into the world again defines that there is no one way to experience the band, the music, or the data. It is ever-changing, momentary, and endlessly exploring what it means to look at this collection.

mountain goats song suggestions (@onlylistentotmg)

The sheer number of songs produced by Darnielle and band means there is a song for basically every occasion. (In fact, it’s a common ask on reddit to come up with a TMG song for a specific situation.) This bot is run by Cheap Bots, Done Quick!. I took the moodsfrom Darius Kazemi’s corpora repositoryon Github. (Kazemi curated this collection of interesting data for bots and similar projects.) I pulled the list of songs from a few different sources — I used the band’s websiteas a starting point, but I noticed that they didn’t have the most recent albums. I supplemented the list with Genius records, which includes unreleased music.

In version 2 (December 2017), I fixed the bot to include Spotify links to the songs, so I can listen straight from the tweet if it’s a song I don’t know. (I did this by hand, but if anyone knows how to automate it, let me know!) A lot of the Mountain Goats songs are unreleased or specific live performances — out of respect to Darnielle and the band, I didn’t include recordings of those in the list. You know of their existence, but you can’t access them unless you’re looking for it — preserving some of the ephemera of the band’s earlier days.

This bot receives decent traffic, but I’m mostly a fan of when its combinations are wildly accurate/inaccurate. There really is a song for every mood, and more importantly, it’s brought me through the band’s music in a way I might not have intended. With the Spotify link directly in the tweet, I’ve found myself serendipitously working my way to old albums, or songs I’ve never heard.

I, for one, would like to hear those unreleased Frankie Valli covers.
I had not listened to “Pure Milk” before this and it was so worth it.
This is funny because it is very much a key point of “No Children”. 

Fake lyrics from the mountain goats (@faketmglyrics)

Markov chains generate nonsensical text from a given source, attempting to match the text’s style.

This bot works with a custom Python library developed by Edwin Dalmaijer, with instructions. It took a few tries to get it to work correctly.

Markov chains are fascinating examples of probability. I don’t completely understand the math behind them, but this visualizationdoes a good job of explaining it. These mathematical systems use probability to jump from “state” to “state” — or in the case of lyrics, from word to word based on the likelihood that one would follow the other.

This bot is significantly less popular than the others — I would guess that it requires one to know the band’s lyrics intimately enough to get the joke. I have had a few issues getting suspended for frequent tweeting, so I’ve learned to adjust it.


the best ever DM out of denton: @tmgdnd

This is probably my proudest achievement of 2018.

Someone introduced me Critical Role, a podcast version of the web series in which professional voice actors play Dungeons and Dragons. Previously, I mostly knew about the game from various pop culture references, and through Darnielle’s own interest (see the stats in his Tumblr bio).

Bards in D&D use the power of music to “inspire allies, demoralize foes, manipulate minds, create illusions, and even heal wounds.” They’re best known for spells like Vicious Mockery (a popular roleplaying action) or the ability to give inspiration (an important bonus action.)

In Critical Role, voice actor Sam Riegel plays a gnome bard known for his endless charm and soaring tenor voice. Riegel made use of his character’s musical inclination to make pop culture references. And one day in hit me — this was a perfect combination of the iconic lyrics of the band combined with the game.

Version 1 of the bot is pretty simple, still working on the CBDQ model. I’m trying to make something more sophisticated, but I was more concerned with launching the bot than getting into the coding details. There are a lot of moving parts to D&D — races, classes, landscapes, spells, actions, etc.

I’m particularly proud of this one because the stories function on their own. They are embedded into the mythos of the game, and use all possible combinations to make something fascinating. To me, this is peak Twitter bot goals. You can look at the code here.

Takes a lyric from “Heel Turn 2”
Sometimes bots are good.
Dream concert</p>

which song is this? (@whichtmgsong)

I follow a handful of twitter bots of mountain goats lyrics — but here’s the thing: people don’t source the lyrics. So then I have to like the quote, search for it, and listen to the song later. I wanted a bot that could do that for me.

I asked for help from the creator of WhereIsMobyDick to understand how to structure the dataset. I also chose to work with one of the more active lyrics tweeting bots to piggyback off of — tmgbot has both a significant number of followers and regular updates.

I’m still fine-tuning this bot. The biggest issue here is making sure my dataset exactly matches that tugboat uses, from punctuation and capitalization to key words, phrases, and spelling. I’m not sure where tmgbot pulls its dataset just yet, but it doesn’t match the key versions out there (nor the one I initially used for faketmglyrics.) The other challenge is working with Python to accomplish the things I want — I’m still learning how to code, and figuring out what errors mean take time. Stay tuned!

in summary

The title of this piece, obviously, comes from the tongue-in-cheek from superfans. (It’s also on band merch, and the name of a recent podcast collaboration with Night Vale Presents.) These are really a pet project of mine — I don’t intend to do much more with them, and it’s always been more about the bot for me (what can I make the technology do?) than the content (what happens when John tweets it?). I have so many more in mind — a bot that tweets TMG-related locations like sadtopographies, a bot that takes TMG lyrics and replaces them with emojis, a bot that makes use of the annotations collected by Barbour & does something cool. I also have ideas of DH-related projects that work with this dataset — can I use topic modeling to look at lyrics across the band’s albums? Can I use StoryMap to follow All Hail West Texas? Can I make use of existing fan content to build something like A Million Blue Pages? I have a document filled with GitHub repositories to look at for inspiration, saved Twitter accounts to do something with, and all the time I can devote to side projects.

These bots have gathered a small following, and I’m grateful for the people who have commented, questioned, and responded to the tweets. Most of these bots are just revamped versions of other ones I’ve admired, and made from scraps of code that have been hobbled together from elsewhere. I wouldn’t have been able to build these without the ideas from people like Darius Kazemi, Nora Reed, and George Buckenham, for starters.

I mostly use Cheap Bots Done Quick to do the grunt work at this point — not because I don’t have the technical capability to do more complicated things, but that it’s a lot easier to work with for getting projects up and running. However, my love of Twitter bots, and my involvement in making them, have helped me figure out so much about digital projects and code. I started paying attention to their structure — how to format data, how to work with Twitter’s API, how to make use of Twitter’s affordances. It’s also been a test for working in Python (I legitimately took a class to learn how to make better Twitter bots), exploring Javascript, and understanding myself as a coder. These side projects are helping me figure out personal and professional questions, and doing so in the sort of the way that digital scholarship has taught me to value: figure out what you want to do, and find the tools that will get you there. I’m not learning code or tools for the sake of learning about them, but to make myself a more engaged fan.

I don’t know what comes next for me or John Darnielle, but I’m so grateful for the opportunity to build art from art, to enjoy his music, and for anyone’s appreciation of these weird little Twitter creations.

FAQ for TMG fans:

Do you like GothsYes!

Is Tallahassee overrated? No!

What’s your favorite song? “Old College Try”and “Dance Music”are my top two, for sure. But “Ontario”, “Jenny”, “The Mess Inside”, “This Year”, “No Children”, “The Best Ever Death Metal Band in Denton”, “Heel Turn 2”,“Cry for Judas”, and “There Will Be No Divorce”are all in regular rotation. (This list has gone through at least 10 edits before publishing.)

Favorite unreleased song? “02–75”

Favorite “Going to…”? Going to San Diego” (which is also unreleased).

Favorite Album? All Hail West Texas, and that was before the podcast. Full Force Galesburgis a close second.

Favorite EP? Black Pear Tree, but only for “Thank You, Mario, but Our Princess Is in Another Castle.”

Favorite compilation? Bitter Melon Farm! It has “No I Can’t” and “Historiography”, which are great.

What’s your favorite cover? Going to Georgia” by Sledding with Tigers, followed by “Jenny”by Erin McKeown.

What are you currently listening to? “Orange Ball of Hate”and “Absolute Lithops Effect”

Also: my bots are a pure, unselfish labor of love, but feel free to support my bot-making endeavors.

revision history for this page