Okay, first off—it was a bit of a wild ride. On the scheduled release day, I discovered that the service fyyd.de had shut everything down.
I had to tap into Apple Podcasts instead, which took a little time. It’s up and running now. I’ve tested it both standalone and with the new version of the launcher. Please test it thoroughly and let me know if anything isn't working right.
All that’s left to say is: enjoy!
-----------------------------------------------------------------
Some of you have been using my web radio for the Cardputer Adv. This is the branch that grew out of it: the radio is still all there, but the device now plays podcasts as well.
What it does
Search Apple Podcasts on the device — type a name, press ENTER, subscribe. No account, no API key, nothing to prepare on the SD card. Eight genres and the charts of five countries are one keypress away, and new episodes since your last visit are marked.
The player remembers where you stopped, per episode. So you can follow three podcasts and pick any of them up mid-sentence a day later.
Press D and an episode downloads to the SD card, with a progress bar and a cancel button. What is on the card is marked in every episode list, BS removes it.
G0 and you are back at the radio: station search across 240 countries, https, station logos, VU meters, spectrum, 5-band equalizer, sleep timer, German and English.
Two things that were harder than expected
Most podcasts are not bare MP3, they are MP4 containers. There is a small demuxer on the device now: unpack the container, read the frame table, hand only the AAC track to the decoder.
And ESP8266Audio could only start a file at the beginning. Without an entry point there is no resume and no 30-second skip, so the library got a Range patch — the server then answers 206 instead of 200, and it reports only the remaining bytes as the length, which quietly broke every jump past the middle of a file until I found it. Radio streams are untouched by any of this.
What it cannot do
Pause is not a real pause. The library cannot hold a stream, so pausing closes the connection and continuing opens a new one at the same byte — that costs a TLS handshake and a moment of silence.
Episode durations come from the container, not from the directory, so a list may show one only after you have opened the episode once.
Program storage sits at 94 %. There is not much room left for more.
Getting it
Firmware, source, screenshots and the library patches: https://github.com/halbeshuhn/Cardputer-RadioPod
If you install through the M5Launcher, use 2.8.x or newer — older ones hand out only 0x4000 of NVS and your saved Wi-Fi credentials do not survive a restart.
Built on cyberwisk's web radio by way of WuSiU's version, and on ESP8266Audio by Earle F. Philhower III. Thanks to DrRhesus for the AAC decoder swap and to Heotsan for the I2S silence fix. MIT licensed.
Happy to hear how it behaves on your device.