Tyler Robertson

Streaming internet radio for fun and

Tuesday, March 12, 2024

Last week, internet friend Casey shared a post about Icecast, a project that I'd heard about before but largely put to the side because I am (as has been noted) a fool.

Casey was putting together a collection of various Icecast stations from Cohost, which has since bloomed into the wonderful Cohost Icecast Webring, and has been my go-to listening for the last couple days (you can read Casey's post about it over on Cohost). In a comment on the first post about Icecast, I joked that I was going to make a radio station that's just the barks from Warcraft 2. Unfortunately for my free time over the weekend, Casey replied "hell yeah", and I promptly set to work. Because if there's one thing that will motivate me more than anything, it's a niche joke.

By Sunday afternoon, what had come out of the exchange was 2 Warcraft 2 Radio, a streaming radio station that is just the sounds from Warcraft 2 on shuffle. It's kind of impossible to listen to for more than a few minutes at a time, and sounds a lot like those drive-time radio interstitials ("You're listening to [elephant sound] Big Tony and [bang bang bang] [monkey sound] [glass shattering] The Hoss!") but they never end.

Admittedly my inclusion in the Cohost Icecast Webring is a bit of a cheat, because I couldn't quite wrap my head around Icecast proper on Saturday morning, and opted instead for an ExpressJS server running on Node for familiarity and because it runs well on Glitch. I ended up having so much fun that I made a re-mixable version of the project called Goblin Radio Tower, which you can play around with by either downloading the code from GitHub and running it locally, or remixing on Glitch. It's not as powerful as Icecast and doesn't have many features, but hopefully gives aspiring station-runners a decent place to start by uploading tracks and getting comfy with using a server. If you end up using it, let me know!

A few technical learns from the process, for those interested: