mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Option to mark as played based on percentage listened #527
Closed
opened 2026-04-24 23:12:05 +02:00 by adam
·
12 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#527
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Jdiesel87 on GitHub (Jul 14, 2022).
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 on GitHub (Oct 1, 2022):
Do you think this should be configurable per podcast or is this a library setting?
@Jdiesel87 commented on GitHub (Oct 1, 2022):
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 on GitHub (Dec 19, 2023):
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 on GitHub (Feb 13, 2024):
I think a global setting of 90% or 95% should be fine
@aether-coder commented on GitHub (Apr 16, 2024):
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 on GitHub (Apr 16, 2024):
@aether-coder When you mark an item as finished it isn't actually considered finished?
@aether-coder commented on GitHub (Apr 16, 2024):
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 on GitHub (Apr 17, 2024):
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 on GitHub (Aug 20, 2024):
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:
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.
@advplyr commented on GitHub (Oct 26, 2024):
Upcoming release library settings:

@github-actions[bot] commented on GitHub (Oct 27, 2024):
Fixed in v2.16.0.
@advplyr commented on GitHub (Oct 27, 2024):
For downloaded media items in the mobile app the setting isn't respected for the offline copy of the media progress. The server will still show the item as finished but when in offline mode on the device the media item may still show as in progress.
I've opened an issue for this in the mobile app repo
https://github.com/advplyr/audiobookshelf-app/issues/1356