Shpigford / plylst

Smart playlists for Spotify! Stop relying on fancy pants algorithms to organize your library and instead build playlists the way you want.
https://plylst.app
MIT License
331 stars 52 forks source link

[Feature Request] Dynamic rotation smart playlist based on skip/play=ratio #101

Closed 10bn closed 3 years ago

10bn commented 4 years ago

Dear Devs,

The general idea is that if one has large playlists that one listens to often, it would be nice to filter out the songs that have already been played or skipped in the recent past. To further refine this, the period for which each song is filtered out can be varied by how much one likes the song. This would mean that one’s favourites are being played more often while songs that one likes but doesn’t want to hear every day are being played more rarely.

To filter out a song, one needs to know when it was last played or skipped to define something such as “not played in the past two days and not skipped in the past four days”

To define how much a song is liked, two approaches are possible: either manually, by giving each song a star rating or by automatically by operationalising liking as a quotient of play count over skip count. The latter approach means that no active input of the user is required and that liking can organically vary over a period of time. For this, the skip and play count of a song are required. Ideally, these counts are specific to each playlist, as one might like a song better in one playlist as opposed to another depending on how well the song fits the rest of the playlist. A resulting filter might then be: “for songs with a play/skip ratio > 2: not played in the past four days and not skipped in the past eight days; for songs with a play/skip ratio > 4: not played in the past two days and not skipped in the past four days”

Please let me know what you think and if it could be done with plylst.

Cheers Max

Shpigford commented 4 years ago

Thanks for the idea, Max! Unfortunately there's not a great way to track "skips" with Spotify. It's a limitation of their API.

There may be a way to fake it, but at this point I'm not aware of a way around it. Would love some help with it if anyone is interested, though!