Submitting listens from AirSonic server and clients

I would like there to be a server-side (edit: for AirSonic instances) configuration file where one can enter the listenbrainz token, so that all clients automatically scrobble regardless of whether the client has listenbrainz scrobbling support or not. Some type of xml/config format that would later allow customizing in user specific ways and so on.

This is still sadly the case for all iOS / Android based clients. There are none that I know of which support listenbrainz. As a result, I am forced to use the native client in the web browser of my “jukebox” (old phone) to ensure that my scrobbles are not lost. Surprisingly, using the web interface is not terrible … and I am able to reliably do this. But, the interface sucks … so, respectfully, either add a mobile interface to the stock web-based client, or enable a very easy way to scrobble from the server-side, with user toggles, through the use of a queried config file that can be edited in md/xml or some crap. Thanks sooo much though … I 100% love this project, hate last.fm, and am so happy that the original AS vision is thriving again and FLOSS … incredible, but we need better client scrobbling options for Mobile asap or it will continue to struggle in usage and scope imho.

I don’t know I understand you correctly, but you can’t just enable a client to submit listens by configuring something on ListenBrainz.org. How would the client then know it must submit the listens, especially if it does not even support LB? Or how would the server know what you are listening e.g. on your phone without some client side tool that submits it?

On Android both Simple Scrobbler and Pano Scrobbler support ListenBrainz. Don’t know what is available on iOS.

Maybe here lies the part I don’t understand. Which web based client do you actually mean?

2 Likes

1st Comment: Server side, as in for self-hosted AirSonic servers/instances, commonly used with listenbrainz. The current issue is only the native AirSonic client will scrobble, while any other clients that are AirSonic (subsonic API) compatible lack listenbrainz scrobbling support (all of them, both Android/iOS). As for how to do it, that’s not my job, they asked for a wish list here not programming advise. Not sure what your first sentence was about, that’s kind of obvious, respectfully.

2nd Comment: I only run Free Software for this, so thanks for the tip about Simple Scrobbler, if this works reliably with UltraSonic (the client on I use on my Lineage/Calyx phones/jukeboxes), then this could be the solution I am looking for. I will come back after testing and thanks for this suggestion. If not on F-droid, then it is a non-starter, so won’t look at Pano myself, but again, SS looks promising! It is still curious why so many airsonic clients still do not support native scrobbling, however, and I wonder if work can be done on the listenbrainz api to make this more appealing for developers, because of course, I would prefer this to be as minimal as possible and the fact is no AS clients have an option for LB, but nearly all do for Last.fm, for example.

3rd Comment: Sorry, I started getting triggered here lol … this is a “want” for AirSonic, not listenbrainz so my mistake posting that here, but in my workflow they are related so in my quick vent here I forgot to properly distinguish between LB and AS, assuming folks would infer that, but in hindsight that makes no sense. LOL …

Thanks for your replies!

1 Like

Ultrasonic is not supported by SS. Just tested. [Update - I got it to work despite it saying it would not support it in SS, however, it is spotty. This is minimally acceptable, however, so thanks for very much. Going to download for my old iOS jukeboxes and test on them too [update: doh, you already said not on iOS, sry, but sad that limits those old phones jukebox abilities.]. I can suspect, just like with the old stand alone Scrobbler apps, that reliability will be a problem (already missed 1/2 songs), but this is much better than squinting at the AirSonic web client in the mobile browswer, so thanks again. ;)]

Second update. When I first installed Simple Scrobbler on the Moto5Play w/ Lineage it reported not recognized, was unstable at first, but has been flawless after a reboot. Likewise, my Pixel 4a running Calyx also barfed the same error, but it quickly switched to stating general and then also worked flawlessly thereafter. Although I would still like a simple configuration in subsonic clients - and for listenbrainz API to be as easy as this for possible - this is awesome and totally workable for now. If anything changes, will let you know.

Also, the old iOS phones I have are NOT (emph, not yelling) solved by this fix, and I could not locate and equivalent of Simple Scrobbler or Pano that supported listenbrainz. So, the two iOS “jukeboxes” are still in the same predicament.

Lastly, although I realize the lion’s share of responsibility for server-side scrobbling via listenbrainz is likely on AirSonic’s shoulders, I also think that the Listen Brainz community and leadership would desire to know of this end-user desire and limitation. For example, if a server-side scrobble could be built, then whether I am using my car stereo, my recycled/old phones, or rocking mpv in the command line, it scrobbles with no fuss and muss. Just a self-hosters end-experience dream, ty for listening.

Thanks so much to the LB leadership for bringing the og feel of AS back, very appreciative, just want scrobbling to be as quick and easy as possible for all my devices. And outsidecontext, ty, I am rocking the Lineage phone now without having to use the mobile interface. :relieved:

1 Like

That’s the missing info, now I get you :slight_smile: Yes, configuring this server side is best. The first place to ask for such a feature would usually be the AirSonic project, there they know the software best. But looking over their GitHub page I think what you are asking for is probably already there. ListenBrainz support together with a user interface to enter the token was added in https://github.com/airsonic/airsonic/pull/1224 According to their change log that is available since version 10.6.

I use a Funkwahle server for my audio streaming, and it has server side LB support. Hence I agree that this is the best way to handle it.

No, that’s what I am explaining, that “user interface” is their web-based player, not on the server, but tied to the client itself, meaning other clients playing AS - will not use that token at all. That is the entire basis of my feature request, and yes, as I noted AS will bear the responsibility, but the LB community should certainly care about scrobbling limitations that are effecting their AirSonic subgroup. And, in particular, this limitation means there is currently no way for iOS Airsonic users to scrobble (besides using that same jenky client in the mobile browser like I first mentioned), and only one way for Android-based users to (the Simple Scrobbler you located). I’ve let AS know, now this team knows.

I honestly haven’t tried it, but I think it would work. The client has to cooperate, though, and send scrobble API calls. That’s how the subsonic API works. The subsonic API provides an “scrobble” endpoint, and the client is supposed to call this at an appropriate time. The “scrobble” request only uses an ID to identify the file and a timestamp. So the client actually does not need to configure a token, but it needs to do this API call.

Ultrasonic for example has the option “Scrobble my plays”. If you activate that and configure your LB token on your AirSonic server it should work, at least to the extend I understand it. I don’t know any iOS client as I only have Android devices, but a quick look over the code shows that iSub also has such “Enable scrobbling” setting.

But again, the AirSonic developers are really the best to talk about this. They know their software best.

1 Like

I moved that into a separate topic, as we are moving more and more off-topic. But I gave this a try: It is really supposed to work as I had assumed.
Actually server side configuration of credentials is the main way scrobbling works on AirSonic / Subsonic instances. That’s why the clients don’t have an option to enter the credentials.

But when I did try this with airsonic my listens indeed only got submitted when playing via the web interface, not via Ultrasonic.

But as airsonic itself is no longer maintained I tried with airsonic-advanced instead, and there it works. When I configure ListenBrainz on the server and play with Ultrasonic (with scrobbling enabled) then it submits the listens, including the “Now playing” notification. Configuring the server becomes a bit more complicated in airsonic-advanced, as you first need to enable ListenBrainz in your user profile, then add the token under “Credentials”.

3 Likes