By Jeff Emtman
Companion to episode: This Is Neutrinowatch
Here on the Neutrinowatch site, Martin and I will dedicate a bit of space below-the-fold to breaking Neutrinowatch’s loose fiction. We want to share some of the joys and struggles of chugging to life this silly podcast machine that we that we’ve been building for the better part of a year.
From what we can tell, Neutrinowatch is the first podcast of its kind (though we hope its not the last). It’s a “generative podcast” which is a term that we’ve adopted from generative music. The fundamental idea is that we, the podcasters, create a set of rules for each episode. Once we’re happy with the rules, we take our hands off the wheel and let a computer make the episodes for us. A new version every day.
It’s still early days for us. We’re doing this thing in Python, a full-featured, but beginner-friendly coding language. Martin had a significant head start on me, as he already had some coding experience before this project. I barely had any, but with his help and a lot of bleary eyed staring at answers on Stack Exchange, I’m slowly gaining Python proficiency too.
I’ve buried the lede here, but I do think we’re trying to fix a problem that’s been around since the dawn of podcasting. Podcasting is incredibly static. For the most part, listeners on one side of the world hear the exact same content as listeners on the other. And whether you download today, tomorrow, or 10 years from now, the content will remain the same. We think this makes podcasts feel, well…unresponsive.
Unsurprisingly, the one exception this static-ness is with podcast advertising. Podcast advertisements nowadays can tailor your ads for increasing relevance based on your geographic position and probably a whole load of demographic factors too scary to mention here for fear of summoning the ghost of Zuck.
The technology that makes dynamic ads possible is funny though, because the way it works is strangely simple. To understand it though, you have to understand something crucial about how podcasts as a whole work.
Podcasting is really old tech. Like really old…1990’s old. And it hasn’t changed much since then. No one checks to make sure what you’re actually sending people is what they asked for. When you click play on “Podcast Episode 134” or whatever, a request is sent from your app (Apple Podcasts, Spotify, Stitcher, etc.) to the podcaster’s host (Libsyn, Buzzsprout, Anchor etc). And that request just says “Hey I’ve got a ravenous podcast fan who really wants to hear episode 134. Please send it!” And usually, the podcast host does just that. But that’s it. No one’s checking to make sure that you actually send Episode 134. In fact, Episode 134 doesn’t even have to exist! All the app cares about is that you send something vaguely podcast shaped back. Then everyone pats themselves on the back and calls it a job well done.
So, dynamic podcast advertising takes advantage of this. As that request for episode 134 is sent off on behalf of the ravenous listener, the podcast host just modifies the episode’s audio to plop in “American_toilet_paper_ad.mp3” or “Russian_mattress_ad.mp3” along the way. And because the podcast apps can’t tell the difference, no one’s ever any the wiser that Sophie in Moscow is getting different ads than Jim in Santa Monica.
All this to say: Martin and I experienced some convergent evolution on this front. We’d both been interested in the idea of dynamic ads for a while, but wondered if we could use them for good. Or if not, good, than at least something interesting. Or if not interesting, then at least something uh, different.
So, last summer, we devised Neutrinowatch, a generative podcast. Each day, the entire feed is refreshed with new content. Listeners today have their own experience, and it’s unique. Listeners tomorrow will too. Martin’s a big-brained scientist, so he’s conceptualized it as each day representing a little jolt into a parallel dimension, where our slowly growing cast of characters (Wendy, John, Gus, Ivan) gets up to slightly different capers each day. And this medium-brained non-scientist quite likes this idea.
There’s still a long ways to go. Namely, we’ve figured out the temporal thing, but the geographic targeting is significantly harder. We’d love to give local weather reports or tide tables to different listeners around the world, but the idea of building a custom CDN on our shoestringless budget seems a big ask. It’ll be in the works someday though, as will deepfaked Jeff+Martin, as will a bunch of other things…assuming we don’t immediately break the feed upon launch. 🌟