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

Track reporting (for the listening history) #111

Open
aykevl opened this issue Oct 2, 2024 · 2 comments
Open

Track reporting (for the listening history) #111

aykevl opened this issue Oct 2, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@aykevl
Copy link
Contributor

aykevl commented Oct 2, 2024

Right now it does not seem like go-librespot reports which tracks are played, for "listening history" and probably also for the taste profile Spotify builds (and various other things).

I might take a stab at implementing this. I know there's librespot-org/librespot-java#155 but it's kind of a big PR to wade through (and somebody says it's no longer working). Also, it uses mercury events though I would expect there would be some HTTP/protobuf API endpoint by now? (Or am I missing something? I thought the mercury API was old and deprecated).

In any case, @devgianlu maybe you have some suggestions? Otherwise I might just try to trace what the official Spotify client does.

@devgianlu
Copy link
Owner

The playback reporting subject is incredibly delicate because as soon as you implement it you'll end up with a bunch of people stealing the code to sell "listens bots" to artists and that may piss off Spotify. The current situation of not supporting free accounts and not reporting plays doesn't hurt them economically so they'll let it pass.

Many people have already contacted me with nefarious intents so it's not a matter of "if there are people like this".

You can find a bit (a lot actually) of discussion on the topic here: librespot-org/librespot#626

This puts us in a similar situation to that of playplay (the new audio decrypting mechanism) which people have reversed and made Spotify angry. You can find lots of stuff about it, but they are all small repositories which they probably don't care about or didn't see. Discussion on the topic is here: librespot-org/librespot-java#421

Perhaps the best way is to explore the topic privately and share it only with the people that we trust and that care about giving credits to whom they listen to. The librespot-java reporting stuff didn't get them angry, I find it very difficult to understand what does.

All of the above is the reason why the latest implementation of the reporting code is in librespot-java and uses the old protocol. I haven't looked at any of the new stuff, but that would be cool. If you are interesed in undergoing this journey maybe let's get in touch privately.

P.S. If someone at Spotify is reading this and wants to get in touch, you have already emailed me before :)

@aykevl
Copy link
Contributor Author

aykevl commented Oct 5, 2024

The playback reporting subject is incredibly delicate because as soon as you implement it you'll end up with a bunch of people stealing the code to sell "listens bots" to artists and that may piss off Spotify.

Yeah... that's really unfortunate. Didn't really think of that. I certainly don't plan on selling listening bots, I just want a nice Spotify player :)

If I get around to this (maybe some time, maybe never) I'll contact you privately how this is best integrated in go-librespot. It's not a big issue, just kind of unfortunate that half my listening history is missed.

@devgianlu devgianlu added the enhancement New feature or request label Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants