ListenBrainz: A submission API compatible with Last.fm scrobblers

Just a few notes regarding the Last.fm compatibility API from my experience as an API programmer, and using some scobbling apps:

  • The API endpoint must be at the same path on the server as the last.fm api: http://example.com/2.0?method=…

    This is because many applications only support changing the server used by substituting a different server name while keeping the API paths the same. (Indeed, some require you redirect the hostname with a DNS hack.)

    If this path would be a problem, or would conflict with other listenbrainz apis, then the last.fm compatibility API should be put on a different hostname than the listenbrainz main api. (For example, ‘as.listenbrainz.org’ or ‘compat.listenbrainz.org’)

  • For compatibility reasons, I would suggest implementing at a minimum the "desktop application" and "mobile" authentication flows, since that would cover the scrobbling apps that a user could reasonably reconfigure to use listenbrainz. (The web application path isn't useful, since we can't intercept scrobbles done by a website backend.)
  • If you're looking for an extra "stretch goal", I would suggest looking into doing a pass-through scrobbling service, where it would log the listens in listenbrainz, then also send them to e.g. last.fm or libre.fm (it would be cool if this works for natively submitted listens as well)
3 Likes

This is a good suggestion. We can surely try for the 1st option and i think it is quite possible to achieve this. Even the scrobbleproxy.py implementation works around the same idea.

I discussed it with @alastraip, and his idea was that it is not required as of now.
I already created some scripts that could fetch listens from lastfm and submit it to listenbrainz. This can be extended to achieve the required task, by using pylast api.

I agree with you completely.
Actually, the authentication part is a separate module which can be plugged anytime to extend the scope of the application. I am still not sure if i should drop the web-auth. But, i will surely do at least 2 auth, where desktop auth is for sure. :wink:
Updated the proposal for the same.

Quoting sttaylor in gsoc (IRC) last night:

Remember a Final PDF must be submitted before the March 25th 19:00 UTC deadline to be considered for GSoC 2016
also if you submit your final pdf now you can upload a new one up until the deadline on March 25th
but I strongly encourage students to submit at least 6 hours before the final deadline - we do not extend the deadline under any circumstances
every year students miss the deadline because their wifi goes out or their computer dies and they have to wait until the next year to try again

So consider this a heads up and a reminder :wink:

Thanks for a reminder. Uploading the final PDF now. :slight_smile: