[GH-ISSUE #84] Reporting played tracks to Spotify servers #63

Open
opened 2026-02-28 14:30:19 +03:00 by kerem · 7 comments
Owner

Originally created by @Sinono3 on GitHub (Aug 6, 2021).
Original GitHub issue: https://github.com/jpochyla/psst/issues/84

Since Spotify tracks user listening and makes charts, song playlists and algorithms according to it, I think this feature is important, lots of people care about this.

The discussion about this on librespot isn't active, but it seems the folks over at librespot-java had success with the reporting. Maybe we could take inspiration from their implementation.

Originally created by @Sinono3 on GitHub (Aug 6, 2021). Original GitHub issue: https://github.com/jpochyla/psst/issues/84 Since Spotify tracks user listening and makes charts, song playlists and algorithms according to it, I think this feature is important, lots of people care about this. The discussion about this on librespot isn't active, but it seems the folks over at librespot-java had success with the reporting. Maybe we could take inspiration from their implementation.
Author
Owner

@violoncelloCH commented on GitHub (Aug 24, 2021):

I'm not sure if that is a feature everyone would want to have.
I'm using psst exactly because it doesn't track and report everything I do in it to Spotify.
So I'd at least vote for a settings option to disable tracking and reporting.

<!-- gh-comment-id:904871399 --> @violoncelloCH commented on GitHub (Aug 24, 2021): I'm not sure if that is a feature everyone would want to have. I'm using psst exactly because it doesn't track and report everything I do in it to Spotify. So I'd at least vote for a settings option to disable tracking and reporting.
Author
Owner

@boxdot commented on GitHub (Aug 27, 2021):

Spotify reporting is also useful for forwarding reports to other applications like Last.fm. I agree that this should be opt-in/opt-out.

<!-- gh-comment-id:907060743 --> @boxdot commented on GitHub (Aug 27, 2021): Spotify reporting is also useful for forwarding reports to other applications like Last.fm. I agree that this should be opt-in/opt-out.
Author
Owner

@confact commented on GitHub (Sep 3, 2021):

I would love to have this because I do really use the generated playlists they make for me, so I would like them to make it more accurate with the songs I play in Psst. As Spotify has, we could have private sessions, like in #154, to solve the worry of tracking it. But maybe have it as a permanent setting instead of being a "session."

<!-- gh-comment-id:912340317 --> @confact commented on GitHub (Sep 3, 2021): I would love to have this because I do really use the generated playlists they make for me, so I would like them to make it more accurate with the songs I play in Psst. As Spotify has, we could have private sessions, like in #154, to solve the worry of tracking it. But maybe have it as a permanent setting instead of being a "session."
Author
Owner

@bbbbbr commented on GitHub (Oct 26, 2021):

I too would like to turn on reporting (for last.fm purposes), but strongly agree that such a feature should have a permanent setting (either opt-in or opt-out) for those who do not wish to, or when one wants to temporarily turn it off.

<!-- gh-comment-id:951496356 --> @bbbbbr commented on GitHub (Oct 26, 2021): I too would like to turn on reporting (for last.fm purposes), but strongly agree that such a feature should have a permanent setting (either opt-in or opt-out) for those who do not wish to, or when one wants to temporarily turn it off.
Author
Owner

@boxdot commented on GitHub (Oct 28, 2021):

I see that the API used by psst is the official Spotify API. Is it reversed engineered? I would like to implement this feature behind an opt-in flag, but I am not entirely sure how to do it. Do I have to send play/stop/pause events via the API? Any help with the API is appreciated.

<!-- gh-comment-id:953792579 --> @boxdot commented on GitHub (Oct 28, 2021): I see that the API used by psst is the official Spotify API. Is it reversed engineered? I would like to implement this feature behind an opt-in flag, but I am not entirely sure how to do it. Do I have to send play/stop/pause events via the API? Any help with the API is appreciated.
Author
Owner
<!-- gh-comment-id:958683449 --> @bbbbbr commented on GitHub (Nov 3, 2021): Looks like librespot-java maybe supports this? Original Issue https://github.com/librespot-org/librespot/issues/342#issuecomment-613425917 Implementation: https://github.com/librespot-org/librespot-java/pull/155 Callstack-ish overview of what's used to do that: trackPlayed() https://github.com/librespot-org/librespot-java/blob/88149a2b55f13db0cd64c30c7f24978c789c02ec/player/src/main/java/xyz/gianlu/librespot/player/Player.java#L415 endMetrics() https://github.com/librespot-org/librespot-java/blob/88149a2b55f13db0cd64c30c7f24978c789c02ec/player/src/main/java/xyz/gianlu/librespot/player/Player.java#L731 sendEvents() https://github.com/librespot-org/librespot-java/blob/802ecf8cca8e30ca794f9fbd923a2486bf8630df/player/src/main/java/xyz/gianlu/librespot/player/metrics/PlaybackMetrics.java TrackTransitionEvent() https://github.com/librespot-org/librespot-java/blob/802ecf8cca8e30ca794f9fbd923a2486bf8630df/player/src/main/java/xyz/gianlu/librespot/player/metrics/TrackTransitionEvent.java When using the web client and watching the network traffic, it looks like it may be using a json equivalent for some of the above (state changes and events).
Author
Owner

@bbbbbr commented on GitHub (Aug 4, 2022):

In theory this might be an option:
https://github.com/InputUsername/rescrobbled

Haven't been able to test it yet since my system doesn't appear to have the required GLIBC version, and I haven't tried building it from source.

In the config file would include a line like this for psst:

player-whitelist = [ "psst" ]
<!-- gh-comment-id:1204810175 --> @bbbbbr commented on GitHub (Aug 4, 2022): In theory this might be an option: https://github.com/InputUsername/rescrobbled Haven't been able to test it yet since my system doesn't appear to have the required GLIBC version, and I haven't tried building it from source. In the config file would include a line like this for psst: ``` player-whitelist = [ "psst" ] ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/psst#63
No description provided.