Is there no subsonic-compatible media server app for SFOS?

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.

* This is even official nowadays.

I have made an app called Supersonik. Its a Qt6/Kirigami app so you need to install all the qt6 stuff, see Packaging Qt6 (6.7.2) for Sailfish OS - #22 by decon It is far from perfect, but happy to have feedback GitHub - piggz/supersonik · GitHub Adam Pigg: "Added genre support so Supersonik, my @kde@floss.…" - Fosstodon

4 Likes

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).

1 Like

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).

3 Likes

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:

  • Playlists
  • Searching for artists
  • Playing a playlist
  • Playing random songs

Link: Making sure you're not a bot!

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.

Edit:
Added v0.2 with playlists support

Edit v2: Pushed to open-repos :slight_smile: SubMusic | OpenRepos.net — Community Repository System

5 Likes

@JulienBlanc yes please, I am absolutely interested! Are you refering to this? It’s GPLv2 so you have every right to fork & publish it.

@ScaleneVirus288 thanks I’ll check it out.

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,

1 Like