Keeping old internet radios alive with a Raspberry Pi

Hi everyone,

I’ve been working on a small project that might be useful to anyone with an older internet radio.

The problem is that more and more radio stations are switching to HLS (.m3u8) streams, which many older Wi-Fi radios simply can’t play. So you end up with perfectly functional hardware becoming e-waste just because the streaming format has changed.

I wrote a little Python tool that runs on a Raspberry Pi and converts those streams into regular HTTP MP3 streams that older radios can understand. No hardware modifications needed, as long as the radio supports custom station URLs.

I’ve recently released v2, which is a complete rewrite. It now has a web interface, supports multi-stream playlists, and fixes quite a few bugs from the original version. It can also serve multiple radios from a single stream without duplicating the transcoding work.

It runs on older Raspberry Pis too, so it’s a nice way to give both an old Pi and an old radio something useful to do.

Here’s the project if anyone’s interested: GitHub - clifarr/HLS-Radio-Converter: Convert HLS m3u8 streams to MP3 for Frontier Silicon and similar Internet radios · GitHub

Would be interesting to hear if anyone here has an older radio that’s stopped playing certain stations.

This is a very useful project, since I use microcontrollers for playing internet radios and they work fine with mp3 but that’s about it. Another use-case could be the on-the-fly conversion of https streams to pure http streams.

Only one thing to clarify: “.m3u8” is not HLS. “.m3u” could be HLS, even “.foobar” could be HLS. What really matters is the content. If it uses an HLS manifest, it is HLS.

Why does this matter: if the file only links to mp3 (playlists), no conversion is necessary.

Anyhow, I bookmarked your repository. Thanks for sharing!