advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
6.24k stars 437 forks source link

[Enhancement]: Option to mark as played based on percentage listened #837

Open Jdiesel87 opened 2 years ago

Jdiesel87 commented 2 years ago

For me this has mainly been coming up with podcasts where the end credits can be quite long. It would be nice to have the ability to mark episodes as complete after a configurable amount of playback completion, say 90% or 95%.

I think it makes sense to limit it to podcasts as audiobooks are digested differently and are less likely to have end credits.

advplyr commented 1 year ago

Do you think this should be configurable per podcast or is this a library setting?

Jdiesel87 commented 1 year ago

I think library setting should be sufficient. Personally I doubt I would spend the time to set it for each podcast. In my case I would probably set it at 95% and forget it.

Catsrules commented 9 months ago

Another vote for this feature! I know It is dumb but seeing a big list of book at that are 96-99% finished under my "Continue Listening" drives my OCD crazy. :) I end up just having to make sure I go to the very end on everything or mark it finished and delete the bookmark.

As for how to implement it. I agree a global library setting should be fine. However percent remaining doesn't work very well when we are looking at very long duration content. For example 98% completed on a 2 hour book is only a few minutes that is totally reasonable. But 98% on a 30 hour book is 36 minutes. That to long to assume the book is finished.

We might be better off just having a user defined minutes remaining instead of a percentage remaining. For example If there is less than 5 minutes remaining assume it is finished. I think that works much better when you have content that has such a huge variation in duration.

What are your thoughts?

MattBlackOnly commented 7 months ago

I think a global setting of 90% or 95% should be fine

aether-coder commented 5 months ago

Same problem, gotta go back and manually check as finished every once in a while since I leave when I start hearing the credits but that doesnt seem to be enough for it to be considered finished.

advplyr commented 5 months ago

@aether-coder When you mark an item as finished it isn't actually considered finished?

aether-coder commented 5 months ago

@aether-coder When you mark an item as finished it isn't actually considered finished?

Yes, when I manually mark the audiobook as finish the progress bar goes from yellow to green, they are removed from continue listening and are moved to listen again section. This is great.

What I meant to say is that I almost always end up manually marking the audiobook as finished. Many audiobooks have credits or maybe even bonus content. For that reason there's always a minute, sometimes a few minutes left when I close the player and move on to the next audiobook.

I get there are some pros and cons to impletementing a system that marks audiobooks (not to even mention podcasts) finished a few minutes earlier. In my opinion it would be best for everyone to have the option per library to consider audiobooks finished earlier. This could be percent based like 98%, and people can the percentage.

lunik1 commented 5 months ago

This would be a nice to have for me too. I agree that absolute time remaining is a better metric than percentage remaining: a podcast's outro will be about the same length every time.

vahtos commented 3 weeks ago

Do you think this should be configurable per podcast or is this a library setting?

I think the ideal option is both. The default value for a library should be the current default (100%), and can be overridden by the same setting on individual series or files within a library, with the most granular setting value (file --> series --> library) that has been explicitly set taking priority. For example:

File: undefined Series: 96% Library: 98%

Result: 96%

This would address differences between series within a library where one series might have a long end credit/ads sequence, and another does not. However, it wouldn't be a very clean way to handle this issue:

98% completed on a 2 hour book is only a few minutes that is totally reasonable. But 98% on a 30 hour book is 36 minutes. That to long to assume the book is finished.

There isn't a 100% precise answer for this sort of thing, but adding the functionality to use a static amount of time left as the threshold would at least remove some loss of precision as the content length scales. This would get a little tricky since the app would need to convert the relative amounts (percents) to the same time unit and compare, it's doable though.