Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Problem: Audio scrobbler won't work when using UPNP Renderer or Tidal
#1
Shocked 
Hi everyone,

Last.fm scrobbling won't happen for me Confused

Here is how I use it :
  • I entered my Last.fm credentials in Moode's configuration menu
  • I enabled UPNP Renderer (DLNA Server is disabled because I don't use it)
  • I use BubbleUPNP as a control point
  • My sources are Serviio and Moode UPNP > Tidal
  • Moode is updated to its latest released version
Audio scrobbling won't work with any of my 2 sources.
I don't even know if it works on local files because I don't have any audio files stored on my SD card.

My questions :
  • Do the userid and password in the audio scrobbler config screen refers to my Last.fm login username and password? Or do I have to create API keys?
  • Do I have to install some system libraries for this functionality to work?
  • Where are the concerned logs located and what should I look for in order to debug this functionality?
  • What did I do wrong??  Angel
Thank you!  Smile
Reply
#2
Yes, it's your last.fm login username and password
No libraries are needed
The conf file is  /usr/local/etc/mpdasrc

You can get messages from mpdas by running it from cmd line.

Code:
sudo killall mpdas
sudo mpdas

The output will be something like below

Code:
pi@rp3:~ $ sudo mpdas
(09:31:51) [INFO] Cannot parse config file (/home/mpd/.config/mpdasrc).
(09:31:51) [INFO] Cannot parse config file (/home/mpd/.mpdasrc).
(09:31:51) [INFO] Using Last.fm service URL
(09:31:51) [INFO] Connected to MPD.
(09:31:53) [INFO] Last.fm handshake successful. SessionID: zh1dmwYOxOwMXKMBBc5jRC2Ry_nTx21w
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#3
@bobspongieux

As a coda to Tim's reply, once you have mpdas running from the command line, you should see a repetition of lines like the last two four in the following:

Code:
pi@moode:~ $ sudo mpdas
(10:37:08) [INFO] Cannot parse config file (/home/mpd/.config/mpdasrc).
(10:37:08) [INFO] Cannot parse config file (/home/mpd/.mpdasrc).
(10:37:08) [INFO] Using Last.fm service URL
(10:37:08) [INFO] Connected to MPD.
(10:37:10) [INFO] Last.fm handshake successful. SessionID: <...>
(10:37:10) [INFO] New song: Sun Ra - Crystal Spears
(10:37:10) [INFO] Updated "Now Playing" status successfully.
(10:37:31) [INFO] Scrobbling: Sun Ra - Crystal Spears
(10:37:31) [INFO] Scrobbled successfully.

I captured this as I played a track from Tidal via BubbleUPnP to moOde.

Regards,
Kent

[Note added in post-edit] Sorry, I forgot to let the track complete so was missing the last lines in my first post.
Reply
#4
Thank you for your replies, I will try this tonight.
Reply
#5
Sorry for my late reply, I was busy fixing another urgent issue on a completely different system..^^

About this issue..... I did not do anything to Moode at all. Not even running your commands.

Still, it is fixed. ?

The only thing I did since was authorizing some app (Plex) to scrobble on my Last.fm account.

Considering the fact that my Last.fm is quite old and received no scrobbles for a very long period of time after I created my account.. I suspect an issue on Last.fm's end. Maybe my account was locked or misconfigured in some kind of way..

Still: it is fixed!

Thank you for answering so quickly Smile
Have a nice day <3
Reply
#6
Hello

I have similar problem with Tidal scrobbling. Moode sends "now playing" correctly, it shows on last.fm page, but doesn't save scrobble (no history on page).
This is my log

Code:
pi@moode:~ $ sudo killall mpdas
pi@moode:~ $ sudo mpdas
(18:56:58) [INFO] Cannot parse config file (/home/mpd/.config/mpdasrc).
(18:56:58) [INFO] Cannot parse config file (/home/mpd/.mpdasrc).
(18:56:58) [INFO] Using Last.fm service URL
(18:56:58) [INFO] Connected to MPD.
(18:56:59) [INFO] Last.fm handshake successful. SessionID: XLg_FMMdwgmgCJQFPHnyp3p6IaEpT0rE
(18:56:59) [INFO] New song: Ella Mai - Cheap Shot
(18:57:00) [INFO] Updated "Now Playing" status successfully.
(18:57:01) [INFO] Scrobbling: Ella Mai - Cheap Shot
(18:57:01) [INFO] Scrobbled successfully.
(19:00:54) [INFO] New song: Ella Mai - Shot Clock
(19:00:56) [INFO] Updated "Now Playing" status successfully.
(19:00:56) [INFO] Scrobbling: Ella Mai - Shot Clock
(19:00:57) [INFO] Scrobbled successfully.
(19:01:36) [INFO] New song: Ella Mai - Emotion
(19:01:36) [INFO] Updated "Now Playing" status successfully.
(19:01:37) [INFO] Scrobbling: Ella Mai - Emotion
(19:01:37) [INFO] Scrobbled successfully.
(19:02:01) [INFO] New song: Bea Miller - like that
(19:02:01) [INFO] Updated "Now Playing" status successfully.
(19:02:02) [INFO] Scrobbling: Bea Miller - like that
(19:02:02) [INFO] Scrobbled successfully.
(19:05:07) [INFO] New song: Bea Miller - buy me diamonds
(19:05:07) [INFO] Updated "Now Playing" status successfully.
(19:05:08) [INFO] Scrobbling: Bea Miller - buy me diamonds
(19:05:08) [INFO] Scrobbled successfully.
(19:08:19) [INFO] New song: Bea Miller - warmer
(19:08:19) [INFO] Updated "Now Playing" status successfully.
(19:08:20) [INFO] Scrobbling: Bea Miller - warmer
(19:08:20) [INFO] Scrobbled successfully.
Reply
#7
Just wanted to say I have the same issue with last.fm scrobbler on the latest version of MoOde.

I am using JRiver MC 24 on a Mac to push files via DLNA to MoOde running on a pi2.
Same symptoms.
last.fm shows the "now playing" properly. But the track is not committed to the last.fm even log and disappears once the track is over.
Reply
#8
I'm neither a regular user of last.fm nor an expert on its operation, but I took 10 minute to read its API.

The "last played" info is sent to last.fm in one service request and the "scrobble" info is sent in another.

Here's a snippet from the mpdas source code

Code:
       OpenURL(GetServiceURL(), CreateScrobbleMessage(0, entry).c_str());
       if(_response.find("<lfm status=\"ok\">") != std::string::npos) {
               iprintf("%s", "Scrobbled successfully.");
               retval = true;
       }
       else if(_response.find("<lfm status=\"failed\">") != std::string::npos) {
               eprintf("%s%s", "Last.fm returned an error while scrobbling:\n", _response.c_str());
               if(CheckFailure(_response))
                       Failure();

Basically, it says that if last.fm returns lfm status="ok" to the scrobble service request, then print "Scrobbled successfully". (You can read more about the scrobble service request and the lfm status parameter at https://www.last.fm/api/scrobbling)

It seems to me that if you are seeing this message in mpdas output but not seeing your track show up in your last.fm account, then you need to query the maintainer of the mpdas source code (using the issues log at https://github.com/hrkfdn/mpdas), or possibly the query the last.fm folks about possible post-receipt filtering.

Regards,
Kent
Reply
#9
Oof!

I didn't read all of the info I referenced. From https://www.last.fm/api/scrobbling

Quote:Filtered Requests

A scrobble or Now Playing request may be ignored if we detect bad meta data. This is not treated as an error condition, so if filtering takes place the response will have an "ok" status. The server will return an ignored message with an associated ignored code. This information is useful if the client wants to show information about why a track was not added to the user's profile.
Reply
#10
Looks like known issue:
https://github.com/hrkfdn/mpdas/issues/53
Reply


Forum Jump: