Replies: 13 comments 21 replies
|
Thanks a lot for writing this! The feature is not in my priority list, but this is a very good base for thinking ! I'll try to precise my thoughts about this integration in the next few days if anyone wants to help contribute :) |
|
I've been thinking about this and I believe go-mpd-discplayer is the right place for this feature, rather than go-odio-api. Here's why:
What I'm envisioning: A new radio-browser.info backend in go-mpd-discplayer, exposed through the API. Favorites, custom radios and metadata would be stored in a local SQLite database rather than M3U playlists. SQLite becomes the single source of truth, and we just push URLs to MPD on demand via The API would also serve an embedded HTMX/Tailwind UI for managing radios: a simple country/station browser with search, and favorites on the home page. As a bonus, the same API layer an UI could also help fix incorrect CUE playlists generated by go-disc-cuer when a CD isn't found in GNUDB or MusicBrainz, or when the match is wrong. A few things to keep in mind:
@pbattino What do you think about this proposal, would that fit your needs and reach your UX expectations ? |
|
On 3rd thoughts, using a M3U would probably integrate more nicely in MPD, so https://jcorporation.github.io/webradiodb/ might be an easier and quicker solution for a first iteration. The Api and SQLite would still be there in mpd-discplayer to store favorites, start a radio playback, or create custom M3U radios. Maybe the UI could be handled directly in go-odio-api, with an optional mpd-discplayer backend (enabled in odio streamer). Even if mpd-discplayer requires MPD, it's a gateway for hardware so I it might have its place in go-odio-api, kind of like bluetooth has. |
|
There is also another thing we could explore: In the upmpdcli documentation, handling of internet radio is mentioned here https://www.lesbonscomptes.com/upmpdcli/pages/radios.html . Is it worth exploring? It is still not clear how is upmpdcli used inside ODIO and if those 2 plugins mentioned above can help. Also this note on the Control Point page: "If you want to use the more specific OpenHome capabilities in upmpdcli (like the Radio Source), you need the BubbleDS Next variant and its extended OpenHome support." I did try BubbleDS and indeed I could see a "Radio" tab appearing. The downside here is that it would only work with a limited number of Control Points. Regarding cover art: Where it says "Some radios (e.g. Radio Paradise) publish the album art for the currently playing title" I think it refers to the "StreamUrl" that indeed is NOT used for most radios :( |
|
Thanks a lot for the detailed write-up @pbattino! I've been looking into the different approaches and tested the mympd instance i already have on my NAS and experiments Raspberry. Here's a summary of where things stand: Short term option A: integrate myMPD (#6) myMPD has native WebradioDB integration built-in: browse/search stations by genre, country, language, codec, add them to webradio favorites, and play through MPD. It also supports adding a station by URL. It covers all three user stories you described, out of the box.
Integrating myMPD into odios-installer as an Ansible role should be reatively easy. I just realized I had already done that manually as an experiment on my test Pi B, so I have already have a good material base for this role. The trade-off is that you end up with a separate web interface alongside odio for the webradio experience. But I don't see it as an issue, mympd solves some MPRIS lacks, it'd be nice for CD/USB, or even users mounting their own library in odio. the dashboard also display some infos through MPRIS.
Short term option B: integrate upmpdcli upmpdcli sits in front of MPD and exposes a UPnP/OpenHome renderer with built-in radio plugins (radio-browser.info, Radio Paradise, etc.). Adding it to odios-installer is really easy, just a few more line to edit in upmpdcli ansible role. You'd then control webradio from a UPnP control point on your phone/tablet, like BubbleUPnP or BubbleDS as you suggested. I couldn't find radios in BubbleUPnP, maybe that's on the app. I did try BubbleDS and could find some radios in there, but not as much as I'd have expected. I'm not sure I managed to get Radio Browser working. I also found upmpdcli behave strangely during the tests ? Integration in odio dashboard is not as good as with mympd The trade-off here is similar: the webradio experience lives entirely outside the odios interface, and depends on whichever UPnP app you use, experience seemed less good than with mympd. Long term: native odio integration This means building webradio browsing/search/favorites directly into the odios stack (mpd-discplayer, odio-api), with integration to a station index API (WebradioDB or radio-browser.info) and proper metadata handling. This is the only path to a unified UX, but it's a significant amount of work and not on my immediate roadmap. Contributions welcome if anyone wants to tackle this. Both short term options are on the table and could land relatively soon. Upmpdcli experience was a bit meh in my opinion, but's it's really easy to add, so it can be done. Mympd is a bit more work, but fairly easy too. Thoughts? |
|
It looks like myMPD offers the best cost/benefit ratio for now, although I'm not a fan of using their station DB (I could not find some stations I normally listen to). Showing cover art in ODIO is still not possible I presume? (I don't know how myMPD handles covers, I may have looked into it some months ago but can't recall) Regarding a unified UX: HOWEVER, one could argue that, once a selected list of stations is there somewhere (basically a favourite list/a "station playlist") picking a station is like picking a stream... It's a bit of a stretch but it probably cover the most common scenario of having a handful of stations that you can simply browse and pick one, no need for another search/filter etc, just a list. Does it make then sense to be able to directly pick a station in ODIO from a list, without a complete interface to also browse to add new stations? PS: I also want to try again BubbleDS + upmpdcli. Unfortunately my first attempt with Bubble was not successful: I could play on other receivers but not on ODIO! The track name apperas, next/previous work but the progress bar is stuck at 0:0 and no music. On the other hand ODIO perfectly worked with Spotify so it's not an audio pipeline problem. |
I have an interesting story about this. I own a Maranz ampli (an "A/V receiver", technically) , a model from 2012 with some "smart" features, including web radios. The UI is terrible but hey, with only a normal TV-style remote what do you want, it works fine.... NOT HAPPY! That's why I think ODIO is an interesting project. I'm fed up with this enshittification. More so when the hardware is still in perfect shape and can work for another 20 years at least. |
|
BTW I like your plans: mympd + keep investigating how upmpdcli + BubbleDS can still offer an alternative. |
|
Ok so it looks like yesterday I forgot to install the necessary upmpdcli packages to get webradios to work properly
Now upmpdcli does expose a media library with the webradios and I can see them in BubbleUpNP. In BubbleDS they appear also in the local upmpdcli library. Looks like BubbleDS Radio use yet another way to provide radios on its own, no idea how, and that's it a lot more capricious with odio/upmpdcli. Not sure I want to dig into that either 😅
With the library mode, still no cover but it looks like it integrates better in odio than before. But It might depend widely on the webradio itself from what I've seen. I can't get Radio Browser to work though, I get a Anyway this part is in the pipe #37 |
|
Ok so I'll probably ship There will be upmpdcli radios (thanks to @pbattino work, I'll credit on the release page Upgrade is a first iteration before improving the UX and necessary upgrade time; also aimed at facilitating debug. It doesn't change anything to current upgrade process for now, still a Or just reflash ! For people who haven't tweaked their odio install, that's probably the easiest. |
|
I've opened a discord server if you're interested ! |
|
It's alive ! https://github.com/b0bbywan/odios/releases/tag/2026.4.1rc1 🥳 Thanks again @pbattino, both as the maintainer, for stepping in this early in this project, I really hope it'll make you feel confortable to contribute again! And as odio first user, this is best the UX I have with webradios since I started this projet. So thanks a lot. Regarding mymPD, I looks like I was mistaking, and I'll have once again to build arm packages and publish them on my apt repo. I have to admit I don't really feel like doing it for now, but I've started to work on it anyway. Not sure when I'll finish it. However I saw this https://jcorporation.github.io/myMPD/060-references/customization.html which looks really nice to make mympd look more integrated in odio, even though it runs on another port. So I feel like making it a requirements to add mympd on odio, if someone wants to dig in ! Discussions and ideas about the long term solution are still open to debate. |
|
A workaround for radios with cover, based on cue files (as I mentionned in the beginning of this discussion) will soon be available in next mpDris2 release (v0.10.0). I'll be adding MusicBrainz/CoverArt fallback after that in v0.11.0.
In odio-ui
in mympd.
I'll also add shortcuts on mympd homepage. You'll have to create a folder with the station name in mpd mkdir /media/USB/GrosseRadioReggae/
ls /media/USB/GrosseRadioReggae/
cover.png playlist.cue Kind of hacky, but it can be handy for favorite stations, or those not available in webradiodb, and motivated users 😆 |












Uh oh!
There was an error while loading. Please reload this page.
This is both a proposal and brainstorming opportunity.
The user stories
The "good" part
The "bad" part
The "ugly" part
Web-radio stations are like websites: they can be good and stable (like: the same URL will work forever) or they can be ephemeral, messy, non-standard-compliant etc. And exactly like websites, they are just "out there" and you need to find them. Hence the usefulness to create indexes of stations so that they can be quickly found. Some popular services are:
The proposal
Any thoughts? @b0bbywan suggests that web radios can also be placed in cue files, in the mpd library folder. If anybody has a suggestion, let us know!
All reactions