Working on an audio streaming platform powering an indy internet radio. Looks like Icecast & friends show its age and a similar product can be easily built with the functionality cast down to simply robust streaming & handling "timed playlists". I enjoy every bit of knowing exactly what happens in the code. It's not open source atm, but will be. It's in Go, is a pleasure to write and the deployment takes minimal amount of resources.

Other project is to continue a bit stalled progress of a configuration language BCL - add functions, more structures and fix some hidden scoping issues. Making languages is an endless fun. https://github.com/wkhere/bcl

Was recently looking for such a streaming thing; just streaming from a set of MP3s in a folder, nothing fancy. The majority looked too complex, with too many moving parts, for my idea.

Found one in Go that might interest you too: GoFM. Although I dropped my idea for now, I'd love to see yours come to life, too.

I started with this one:

https://medium.com/@icelain/a-guide-to-building-a-realtime-h...

And then, modified a lot. At some moment I will open it back. (Author's MIT license allowed closing it; I did it actually because I embedded a number of idiosyncrasies related to the radio service that shouldn't be disclosed; but with some amount of work it can be divided into an open and closed part).

The broadcasting skeleton from that original blog/github project is good, though! It might work for your case.

Please keep in mind it's better to stream AAC than MP3. Basically any format you'd probably want to use can be converted to AAC with ffmpeg.

AAC has a simple frame format and it's easy to decipher it; I use it to always send full frames, even when one would want to skip to the next song - by doing that the client behaves more smoothly.

Thank you for the pointers.