-
-
Notifications
You must be signed in to change notification settings - Fork 51
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
Subsonic API not scrobbeling correct #3203
Comments
I cannot reproduce this on Gonic. When the stream is opened, I scrobble with submission=False to report for now playing and when more than half of the song has played (or buffered to the speaker) I scrobble with submission=True. The play counts in my Gonic instance look about right. |
@khers seems so many problems with Navidrome…? |
I think that has 3 probable causes in order of how likely I think they are:
All that said, I still want to try and support Navidrome but occasionally folks are going to have to report issues to the Navidrome devs because I am not a user of the project. |
So does the OP need to report this to the Navidrome project? |
If OP is certain that the scrobble call with submission=True is never being made then it is something I should investigate. But I added print statements around the async call (actually ensuring that the scrobble call is made, or that any async python request runs, is not as simple as stepping through with the debugger) so it was queued to run and I see play counts change on my server so I would be really surprised if it did not. If play counts are not changing for OP first double check that you can scrobble something on your server with submission=True using https://github.com/khers/py-opensonic. I can help diagnose further if OP wants to investigate. |
@sebmuc99 please do some more testing as suggested above. |
@khers I run a loop checking "nowPlaying", then when the "id" of the song changes from the previous one I scrobble (submission=True) the "id" of the previous track. The scrobble has a 100% success rate I found out that you can't really rely on the media_player media_position since MA creates an endless stream to my Sonos speakers. |
Just being super pedantic here, the provider is an opensubsonic provider and tries to follow the opensubsonic api docs.
This is where we report for Now Playing. However, we are not going to monitor the subsonic api to know when this changes, when the user starts playing another track MA will call
That is correct, unfortunately some players will report a full play back as soon as the track is cached on the speaker but that is not a thing I can address in the subsonic provider. We get as close as we can by registering a callback to happen when the stream is finished/changed here: https://github.com/music-assistant/server/blob/fe175c4fae9ea431c47c86c1841eee62f1d4b2fe/music_assistant/providers/opensubsonic/sonic_provider.py#L713 The I will write up a patch that adds more debug logging around these things, but the real interesting thing would be some indication that the scrobble call made from |
What version of Music Assistant has the issue?
2.3.3
What version of the Home Assistant Integration have you got installed?
2024.11.4
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?
The problem
Server is not scrobbeling correct to navidrome via subsonic API
Server is scrobbeling the play now action but never send the final submission event
https://www.subsonic.org/pages/api.jsp#scrobble
How to reproduce
play via subsonic
Music Providers
subsonic
Player Providers
sonos
Full log output
No response
Additional information
No response
What version of Home Assistant Core are your running
2024.11.0
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi
The text was updated successfully, but these errors were encountered: