mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Improved Listening Stats page #774
Open
opened 2026-04-24 23:21:10 +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#774
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 @austinphilp on GitHub (Nov 21, 2022).
Describe the feature/enhancement
I'm a total stats junky, so one of the things I love about Audiobookshelf is the detailed listening stats it provides. There are a few areas of
config/statshowever that I think could be improved upon.The simplest enhancement is to change the "Minutes Listening" stat to be a bit more dynamic. For avid listeners, this number becomes meaningless pretty quickly. I'm currently sitting at about 6,000 minutes listened after only a month of usage. I think it would be a lot more readable if we collapsed into large time units as the number grows, So "6,000 Minutes" becomes "4 days 4 hours" and so on.
The large enhancement that I had in mind, was adding a time range filter to the top bar of the page (the items finished, days listened, and minutes listening stats). So that you can see your stats over a particular time range. I think this would be particularly helpful for the many readers who like to set goals for books finished over a given period of time. Right now, the only way to see how many books I've read in the last week/month/year alone would be to go into the user details page and look at the "Saved Media Progress" counting manually from a given date.
We could add a simple drop down with sensible date range options ("All Time", "Last Week", "Last Month", "Last Year") and whichever option is selected defines the date range displayed. We could even update the Minutes Listening Graph to show more than a week at a time so you can see how your reading habits change throughout the month/year.
As before, happy to take this on myself if everyone agrees that it would be a worthwhile improvement and we have a consensus on how the UX should work!
@advplyr commented on GitHub (Nov 21, 2022):
I think this sounds good. We'll also need to expand on the API a bit so this data can be pulled efficiently.
Did you have a UI in mind for this already?
For reference, the first stats page was contributed in this discussion https://github.com/advplyr/audiobookshelf/discussions/167
@austinphilp commented on GitHub (Nov 21, 2022):
@advplyr Let me see if I can draft something up after work today! wasn't imagining anything too drastic, adding a dropdown near the top, and we'll want to add some clearer deliniation between the bits that will be affected by the range selection and the bits that won't (for instance, the "Recent Sessions" section won't be affected, nor will the "Commit Graph" looking thing as neither make sense to filter by range).
I'll whip up a UI draft and post it here so we can get a consensus going
@austinphilp commented on GitHub (Nov 27, 2022):
OK - sorry for the delay, holidays kept me busy.
I've whipped up this rough draft of what I had in mind. The only thing I couldn't easily mock is that the graph will be stetched out to fill the width of the page, but the rest is more or less as it would be in implementation. Let me know what you think and if you have any feedback
@advplyr commented on GitHub (Nov 27, 2022):
What is the dropdown "Last week" going to change on the page?
The position it is at there would make me think it is updating everything on the page
@austinphilp commented on GitHub (Nov 28, 2022):
Yeah that's a fair point, I had planned that it would change everything above "Recent Sessions". We could add a divider between the averages and the recent sessions list - or maybe we could make the page composed of two distinct blocks, one with the new filter, the other without
@advplyr commented on GitHub (Dec 1, 2022):
Yeah this is where I'm better at identifying flaws in a design then coming up with one.
I don't have any good ideas for it now. I don't think a divider would look good in this case. I'm not sure what you mean about the two distinct blocks.
@austinphilp commented on GitHub (Dec 5, 2022):
@advplyr OK I whipped up a rough mock of what I was thinking when I said "two distinct blocks". I'm a backend developer by profession, not FE, so it's possible there's a better phrase to describe what I meant, and I just didn't know what it's called 😅
@advplyr commented on GitHub (Dec 5, 2022):
Ah okay, I think that looks good and makes sense.
@austinphilp commented on GitHub (Dec 5, 2022):
Awesome, I'll work on getting that implemented then, it'll be my first time really digging around in the DB, so it might take a bit 🤷🏼♂️
@iconoclasthero commented on GitHub (Nov 17, 2023):
So uh, where we at on this? I just looked at my stats page and all the minutes are merging into each other...
(NB: The Box, Vagina Obscura, and White Holes are about three completely different topics!
@evancjensen-source commented on GitHub (Oct 8, 2025):
Please provide a date range filter so we don't have to wait for "Year in review" to see these stats. I would like to see how many and which books I've read YTD.
@iconoclasthero commented on GitHub (Oct 9, 2025):
In looking again at my post, I'm curious if there's some way to just cap a day at not more than the actual minutes in the day... i.e., no day has more than 24 h/d ✕ 60 m/h = 1440 minutes/day so just don't let the value in the table exceed 1440. It's not accurate, but it surely isn't less accurate than 9197 minutes or 7757 minutes more than are in any given Sunday.
Hmm, I just checked to see if this was still a problem and I listened for 109,051 minutes this past Sunday so I guess so.
So again, since the problem of runaway session times has so far proven to be intractable, is there anyway to, even just for the purposes of this, cap the minutes/day at 1440?