MusicPlayerDaemon / mpdscribble

a MPD client which submits information about tracks being played to a scrobbler (e.g. last.fm)
GNU General Public License v2.0
116 stars 15 forks source link

Last.fm: BADAUTH #3

Closed kasati closed 7 years ago

kasati commented 7 years ago

Hi there,

I'm unable to scrobble to last.fm on mpdscribbler 0.23~git. I keep getting:

2017-07-28T14:12:38+02:00 nas mpdscribble: [last.fm] handshake failed, username or password incorrect (BADAUTH)

username and password are definitely correct. No hidden spaces in the conf file either. I've tried changing them on last.fm to no avail. Scrobbling to other services works just fine. So thats all i get at verbosity level 3. I really don't know where else to look. As for this system time issue, I'm syncing with an NTP server periodically, so that shouldnt be the cause either. The problems exists with both plain-text and MD5-hash - authentication.

Any ideas? BTW, how about Last.fm API v2? I'm concerned they might just have switched off the legacy protocol support, if that's what you guys are currently using.

Appreciate your help or bugfix.

Here's the conf file:

mpdscribble.zip

MaxKellermann commented 7 years ago

So finally last.fm has disabled the legacy protocol, I guess. mpdscribble will not implement the new protocol (no volunteer exists for that), thus this issue will never be resolved, sorry.

massdosage commented 6 years ago

@MaxKellermann Which version of the Last.fm API does mpdscribble use? One thing Last.fm changed recently was to disable http access for scrobbling via audioscrobbler.com, one needs to use https. I tried changing the URL in the conf file like so

url = https://post.audioscrobbler.com/

but this didn't fix the auth error. Is http hard coded somewhere inside mpdscribble? In the mpdscribble.log file I see lines like this when attempting to do the auth handshake:

2017-09-27T22:56:15+0100 [last.fm] error parsing handshake response (<html><head>)

Is there an easy to get it to log the whole response?

progo commented 6 years ago

(Edited out my journey to troubleshoot the issue. In summarum, I did have an issue with mpdscribble 0.22 not working with last.fm for 11 days. Now that I looked into this issue and unscientifically tinkered with everything at once, things started to work again.)

In conclusion, HTTP scrobbles still work against url http://post.audioscrobbler.com/. This is with version 0.22 and not the git-master. Could be a curl problem possibly.

Check if you can manually submit a couple songs using curl using what you get in the logs (maximum verbosity may be necessary). It worked for me when last.fm didn't OK otherwise valid mpdscribble submissions.

massdosage commented 6 years ago

@progo Thanks for the extra info. Unfortunately for me it's failing at the "handshake" stage before it even attempts to scrobble so I don't see any log output containing the POST details for sending song details. I turned the debug level up to 3 but I don't see the full handshake URLs that are being sent. I tried to handcraft based on the old last.fm API docs and like you said they seem to work, both with http and https so it could very well be a problem with curl. If I find the time I'll set up Wireshark so I can see the requests and responses.

PMaynard commented 6 years ago

@progo @massdosage I am also getting the same error (with v0.22) I'm unable to complete the handshake, though do we really want md5 hashes of our last.fm flowing over http?

massdosage commented 6 years ago

No, we probably don't ;) So yes, this is why https is preferable. However I don't think http/s is the problem, I think the issue might be with a change to the curl library that mpdscribble is using. I had a quick look at the source code but couldn't figure out exactly what I'd need to change so instead I moved to using mpdas for scrobbling from mpd which seems to work.

PMaynard commented 6 years ago

@massdosage Thanks for the tip, shall give that a try.