Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Add support for LibreFM / generic audio scrobbling APIs in settings #513

Open
AntsyBoi opened this issue Dec 5, 2024 · 6 comments
Labels
enhancement New feature or request

Comments

@AntsyBoi
Copy link

AntsyBoi commented Dec 5, 2024

I use Libre.FM to track my listening habits, and there is currently no great way to track my tidal plays with LibreFM unless I do it in a browser with an extra extension installed. LibreFM uses the standard Audioscrobbler API and requires just a username and password to sign in. Alternatively, just making a generic scrobbler option in settings that for scrobblers compatible with that API would be a nice addition, as this would allow for using LibreFM or any other audioscrobbler without having to manually add support for each one.

@Mastermindzh
Copy link
Owner

I'm intrigued about this "Audioscrobbler API", you talk about it as if it's something shared between various solutions and not just a Libre.fm thing. Could you point me to some docs on that?

Either way I'll be happy to look into this at some time in the (hopefully near) future.

@Mastermindzh Mastermindzh added the enhancement New feature or request label Dec 5, 2024
@AntsyBoi
Copy link
Author

AntsyBoi commented Dec 5, 2024

Libre.FM (from what I could understand from the weirdly limited documentation you can find with a quick search) uses the same protocol for scrobbling as LastFM and so most LastFM documentation on it should also apply. https://www.last.fm/api/scrobbling

I don't know if this would help but an implementation of a generic audio scrobbler exists within Deadbeef's lastfm plugin, which also has support for LibreFM and might be a good reference https://github.com/DeaDBeeF-Player/deadbeef/blob/master/plugins%2Flastfm%2Flastfm.c (I don't know how much that could help with developing it, but it is just a previous implementation of basically exactly what I'm describing)

@Mastermindzh
Copy link
Owner

Ah like that, ok that makes sense.
I'll have a look when I can.

@Mar0xy
Copy link
Contributor

Mar0xy commented Dec 9, 2024

"You talk about it as if it's something shared between various solutions and not just a Libre.fm thing"

Actually it is basically just Last.FM's API which Libre.fm (back then gnu.fm) took and modified and then named generic audio scrobbler while this API works for basically all clients that I know of which are Maloja, Libre.FM and Last.FM it won't work for listenbrainz in turn maloja also supports listenbrainz api but libre.fm doesn't.

TL:DR Audio Scrobbling API's are a mess and I think there is no actual "generic" API

@espensa
Copy link

espensa commented Dec 19, 2024

Tbf the generic API was the old Audioscrobbler site that was Richard Jones's university project in 2002 before it merged with Last.fm, apart from probably some fixes I don't think the API has really changed since then, and basically the same across other scrobblers. I can't believe my last.fm history goes back 23 years lol. It would be nice if you would add this feature, as the Tidal integration, and the Neptune plugins all seem to have issues

edit: I'm mistaken, there's been a few incompatible changes. I guess you could say the generic api is the legacy AudioScrobbler API v1.2

@espensa
Copy link

espensa commented Dec 19, 2024

Your ScrobbleDelay is a bit short at least according to last.fm's definition: "A track should only be scrobbled when the following conditions have been met:

The track must be longer than 30 seconds.
And the track has been played for at least half its duration, or for 4 minutes (whichever occurs earlier.)

As soon as these conditions have been met, the scrobble request may be sent at any time. It is often most convenient to send a scrobble request when a track has finished playing."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants