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

Songs not showing up in Recently Played #913

Open
agneevX opened this issue Dec 22, 2021 · 18 comments
Open

Songs not showing up in Recently Played #913

agneevX opened this issue Dec 22, 2021 · 18 comments

Comments

@agneevX
Copy link

agneevX commented Dec 22, 2021

When playing songs via Librespot, songs don't show up in Spotify's Recently Played.

This is with the following options:

--disable-discovery --username=xxx --password=xxx

Is this a known issue by any chance?

@roderickvd
Copy link
Member

Yes, this is a known issue that I intend to fix as part of the new-api efforts. At this point librespot does not report played tracks back to Spotify.

@roderickvd roderickvd self-assigned this Dec 22, 2021
@roderickvd roderickvd added the bug label Dec 22, 2021
@agneevX
Copy link
Author

agneevX commented Dec 22, 2021

I created this issue as a last resort, I've been engaging with the supports teams over Twitter DM and emailing Spotify Privacy because of missing data, trying to convince them its their issue to solve 😅.

Are there related issues like this?

@michaelherger
Copy link
Contributor

See #626

@roderickvd
Copy link
Member

😆 well you can tell them to move on to other things.

librespot-java found it out here: #626

@agneevX
Copy link
Author

agneevX commented Dec 27, 2021

So I compiled a recent release of spotifyd and it seems to push tracks to Spotify's Recently Played. Isn't spotifyd a fork of librespot?

@roderickvd
Copy link
Member

Are you sure? There is no mention of "event-service" in Spotifyd's repository, which is the endpoint that's known to report played tracks back to Spotify.

Spotifyd isn't a fork, but a downstream application that pulls in librespot as a library and builds a *nix daemon and MPRIS interface on top.

@agneevX
Copy link
Author

agneevX commented Dec 27, 2021

Yep, I spoke too soon. Turns out it added a song to Recently Played that I played for a couple of secs before selecting the Spotify Connect device.

@devgianlu
Copy link
Member

By the way, I think they moved events to the HTTP API so that should be easier to reverse.

@agneevX
Copy link
Author

agneevX commented Dec 27, 2021

@devgianlu does this work with librespot-java?

@devgianlu
Copy link
Member

It works as long as you don't skip the song, if it ends normally it's fine.

@roderickvd
Copy link
Member

By the way, I think they moved events to the HTTP API so that should be easier to reverse.

If someone can do the man-in-the-middle and sniffing work I'd be more than happy to implement it. I'm in coding mode right now 😄 and I was planning on implementing the Mercury endpoint soon, but if anyone can figure out the HTTP one soon I'm all game to do that endpoint instead.

It works as long as you don't skip the song, if it ends normally it's fine.

Is that due to the inner workings of your player thread or some part of the message we still need to figure out?

@devgianlu
Copy link
Member

Is that due to the inner workings of your player thread or some part of the message we still need to figure out?

I've never figured out why, but that's something with the message being sent, there are different keywords for why the track started and why it ended. Ending with anything other than trackdone doesn't work. I remember I explained this somewhere.

Anyway I had a quick look at the new API some time ago and it didn't have those, might be wrong.

@roderickvd
Copy link
Member

I've never figured out why, but that's something with the message being sent, there are different keywords for why the track started and why it ended. Ending with anything other than trackdone doesn't work. I remember I explained this somewhere.

I'll read through the conversation over at librespot-java some more.

Anyway I had a quick look at the new API some time ago and it didn't have those, might be wrong.

I've got some time on my hands these weeks, so if you've got too, let me know if you would want to tackle this together.

@devgianlu
Copy link
Member

I've got some time on my hands these weeks, so if you've got too, let me know if you would want to tackle this together.

Don't really have the time to investigate myself, but I can comment/help. Do you prefer a faster messaging platform?

@roderickvd
Copy link
Member

Let me get the "old" one you already reverse engineered in first. But once I get to this I suggest we can continue on Gitter?

@devgianlu
Copy link
Member

But once I get to this I suggest we can continue on Gitter?

Sure

@noelhibbard
Copy link

I've got the opposite concern. I would like a private listening session option so that listening to kids music via librespot doesn't effect my profile. I obviously still want artists to get their credit but surely the API has a private session boolean that when enabled will still give artists their credit but doesn't run the tracks through the listening algorithms.

@roderickvd
Copy link
Member

I've got the opposite concern. I would like a private listening session option so that listening to kids music via librespot doesn't effect my profile. I obviously still want artists to get their credit but surely the API has a private session boolean that when enabled will still give artists their credit but doesn't run the tracks through the listening algorithms.

Yes, it's on the list for new-api. I haven't had much time lately, but very much intend to pick up development again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants