The SubSonic API has long been the quasi standard for (mobile) media streaming.* I’ve used e.g. DSub (FOSS Android app) for both Navidrome and Airsonic, and maybe one or two more, on and off for many years.
Having one Subsonic compatible app would provide access to many media servers.
I just tried to connect Sailfin to my Navidrome, it did not work (it did work for Jellyfin). Apparently Jellyfin is not SubSonic API compatible.
I don’t like Jellyfin’s PHP dependency very much. Navidrome works much better for me.
BTW - because I know somebody will bring it up - while the browser works well enough, it won’t allow me to switch off the screen and still continue listening.
Cool! It connects but cannot play back, I get this error:
https protocol not found, recompile FFmpeg with openssl, gnutls or securetransport enabled.
I configured my music server (Navidrome) to only run on https.
I suspect this error is generated by qt6-qtmultimedia and not your app directly, which is why I did not open an issue on github.
It looks like qt6-qtmultimedia could also use gstreamer, but I wouldn’t know how to configure that (and I have no idea if that would be able to use TLS/SSL).
I suspect this has something to do with SFOS ffmpeg version.
Hackishly replacing /usr/bin/ffmpeg with this version changes nothing (although that version is able to receive secure streams).
Ah ok, i configured my subsonic server to use http, as I connect via my tailscale network, so its not over the public internet. Ill try and find time to look at the qt6mm build options.
Thanks, but I’m not sure how build options could help. The culprit is SFOS’ default ffmpeg version which does not support HTTPS.
I suspect qt6mm uses ffmpeg libraries and not the executable itself. I wonder if it can be made to search for those libraries elsewhere, so users could install a better version.
And just to be clear: your app connects fine over HTTPS, it’s only the playback that gives up with the above error.
I have a version of Subsoniq that works on my C2. I’ve not published it because it’s mostly a recompilation of a work of another, but if you’re interested i can publish the source on github (iirc i have to check if there are no licenses issues).
I started learning c++ and qt on Friday. So far I’ve created:
Logging in
Searching for songs
Playing songs
There is not much and currently there is only a deployment prepared for aarch64. If you simply need to play a song, this works. I’ll be updating this in the near future. My plan is to have working:
Ps.: My code quality won’t be good for now. I am a javascript developer, trying to learn qml and c++. I’ll try to fix it over time.
Ps2.: I am using sony 10 2 as my testing platform and use this app on fairphone 5. I have no idea how this will look like on other devices.
Most subsonic clients have a feature to automatically download songs you listened to for later offline use (or manually); I find that extremely handy and imho all clients should implement it.
I could try to do something like that in a future as a settings toggle + add a option to simply download a song instead of playing it. My client is also missing proper filtering + v0.5.1 still has some audio issues. I should move logic related to filtering to c++ backend instead of doing it on the frontend side. Player is trying to play unbuffered songs sometimes. Too many issues to fix, so little time…
I start new job on April 1th and I won’t be able to work on my app until around April 5th-6th. Fell free to ping me after that,