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

[Feature Request]: Smart Playlist based on skip to play ratio. #50

Closed
10bn opened this issue Feb 2, 2020 · 15 comments
Closed

[Feature Request]: Smart Playlist based on skip to play ratio. #50

10bn opened this issue Feb 2, 2020 · 15 comments

Comments

@10bn
Copy link

10bn commented Feb 2, 2020

This project sounds amazing!

If we could get smart playlists based on the skip to play ratio, we had a perfect dynamic playlist, that adjusts to our momentary listening Habits.

Lets say i have 6 root playlists :

Pacing: calm, active, neutral
Style: acoustic, electronic, mixed

All my music is sorted into these lists.

Now i do a smart list from calm and acoustic, which is dynamically updating by the skip to play ratio. Then songs with a ratio of < 1 will be played more often and songs with a ratio of > 1 will be played less.

If some one can recommend any other client based server, where this is possible please let me know.

@deluan
Copy link
Member

deluan commented Feb 3, 2020

That's a great usage for SmartPlaylists! The only bummer here is that the Subsonic API does not provide any means to register Skips...

I tried to autodetect it in the first versions of Navidrome, but it was not reliable, specially because the different clients uses the /scrobble endpoint inconsistently.

I'll give some more thought to Skip detection once I start implementing the SmartPlaylists feature.

@deluan
Copy link
Member

deluan commented Feb 3, 2020

By the way, did you ever got these smart playlists you described working in any music software? Which one? iTunes?

@10bn
Copy link
Author

10bn commented Feb 5, 2020

Hey, it would be really cool to see this in navidrome! Let me know how to support this.

Unfortunately not natively, a friend of mine had the idea already a few year ago and since then i was searching the for a server / client based setup supporting this, but without luck.

Itunes provides skip and play count but you can't get the ratio. My friend managed to find a work around in iTunes, but it requires a very complex structure of referencing smart playlists (more than a few hundred) and if you reach a certain amount of skips or plays your need to add extra sets of playlist...
So it's not optimal at all and when you want to use apple music, for some reason you can't have smart playlists referencing other playlists.

If you ever going to implement this please provide options, that we can customize how skips or plays are counted.
Lets say in some lists i want it to be based on seconds or alternatively > < xx% of song length.

I also requested this on the ampache project and the developer apparently also needs to implement skips first. ampache/ampache#2288

thx for your effort.

@10bn
Copy link
Author

10bn commented Feb 12, 2020

Update about the Basic Idea:

The general idea it 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"

@deluan
Copy link
Member

deluan commented Feb 18, 2020

My current plan for Smart Playlists is to support rules-based playlists, similar to iTunes. Even though I loved your idea, I don't want to hard-code anything as specific as your suggestion, but instead provide means for users to create their own playlists.

About handling skips, I think that if the player does not send the scrobbled with submission=false before the next song starts playing, we can assume the song was skipped. I'll try to implement this when I start working in the smart playlists feature.

To support your idea, I will introduce skip/play ratio (if I get skip counter to work properly), but don't think it makes sense to have the counters per playlist.

@10bn
Copy link
Author

10bn commented Feb 21, 2020

Thank you for picking it up.

Skip and Play Counts per Playlist would be nice to have —> 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.

Still even it works without this feature it would be really cool to have this. :)

@10bn
Copy link
Author

10bn commented Mar 24, 2020

Hello Deluan, may i ask how is the status on this?

Thank you.

@deluan
Copy link
Member

deluan commented Mar 24, 2020

Sorry, but there is still a lot of work to be done before I tackle smart playlists... I may get to this in about a month, but don't quote me on this :P

But rest assured that it will be done, as smart playlists is one of the main features that motivated me to start this project

@10bn
Copy link
Author

10bn commented Mar 29, 2020

cool, thankyou for the response.

@Extarys
Copy link

Extarys commented Jul 7, 2020

Washing dishes earlier, I was thinking that - or similar. A smart playlist/dj that would play the song less often the more it's skipped :P

@github-actions
Copy link

github-actions bot commented Mar 7, 2023

This issue has been automatically marked as stale because it has not had recent activity. The resources of the Navidrome team are limited, and so we are asking for your help.
If this is a bug and you can still reproduce this error on the master branch, please reply with all of the information you have about it in order to keep the issue open.
If this is a feature request, and you feel that it is still relevant and valuable, please tell us why.
This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.

@github-actions github-actions bot added the stale label Mar 7, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Apr 8, 2023
@Extarys
Copy link

Extarys commented Apr 8, 2023

Bad bot!

@deluan
Copy link
Member

deluan commented Apr 8, 2023

This is not possible as there's no "skip" event, and even if I implement it in Navidrome's UI, Subsonic clients wouldn't be able to report skips, as the API does not support it.

So I think this idea, although great (I used to have a playlist like that in iTunes), is not feasible for the time being.

@Extarys
Copy link

Extarys commented Apr 9, 2023

Thanks @deluan - It would have been dope though!! :P (I remember Amarok with the track score!)

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants