mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Better metadata handling for anthologies #487
Open
opened 2026-04-24 23:10:57 +02:00 by adam
·
10 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#487
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 @cassieesposito on GitHub (Jun 28, 2022).
Describe the feature/enhancement
I'm not sure what this should look like from an interface standpoint or a metadata standpoint, but being able to tie authors and narrators to individual stories from anthologies would be super cool.
Things to think about:
@advplyr commented on GitHub (Jul 2, 2022):
I'm not sure what you mean. Can you be more specific?
@cassieesposito commented on GitHub (Jul 3, 2022):
Sure, let me give an example. Take the book Rogues.
There are 21 stories, each one with a different author. There are 16 different narrators.
The way the metadata is set up currently, I know the authors are Daniel Abraham, Walter Jon Williams, Steven Saylor, Bradley Denton, Joe Abercrombie, Scott Lynch, Lisa Tuttle, George R. R. Martin, Carrie Vaughn, Gillian Flynn, Connie Willis, Joe R. Lansdale, Michael Swanwick, Garth Nix, Matt Hughes, Paul Cornell, Neil Gaiman, Patrick Rothfuss, Cherie Priest, David W. Ball, and Phyllis Eisenstein.
I know the narrators are Conleth Hill, David Greenlee, Gethin Anthony, Gil Bellows, Gwendoline Christie, Harriet Walter, Iain Glen, Janis Ian, Julia Whelan, Molly Quinn, Phil Gigante, Ron Donachie, Roy Dotrice, Rupert Degas, Scott Brick, and W. Morgan Sheppard
But what I don't know is:
"Tough Times All Over" by Joe Abercrombie is read by Gwendoline Christie and is Tracks 1 through 3
"The Meaning of Love" by Daniel Abraham is Read by Conleth Hill and is Tracks 11 through 13
Etc.
I can put all that in the Description, but having that metadata correctly associated with tracks would allow us to then do things like have particular stories included on author pages, and jumping directly to the chapter/track associated with it.
And then there's the question of editors, which ought to be a separate metadata field from authors. Currently, in my collection, I have the editors listed as "George R. R. Martin - editor" and "Gardner Dozois - editor" filed under authors because that's how audible handles it. When you go to George R. R. Martin's page, it shows up because he's also an author, but if you go to Gardner Dozois' page, it's not listed, because he doesn't have a story in the collection, even though he apparently worked on it enough to get his name in big letters on the second line of the cover.
@cassieesposito commented on GitHub (Jul 3, 2022):
I think this might tie in to the "should we switch metadata to JSON" discussion. Thinking about how to manage this with the current format makes my head hurt, but in JSON it's super easy.
Off the cuff, I came up with this as a format that would accommodate all the current data and that would also accommodate anthologies as I've described here. I'm not convinced there isn't a better approach. I spent 3 minutes tops pondering this and another 5 typing up the example, so there could totally be room for improvement.
@calebj commented on GitHub (Jan 15, 2023):
Per chapter info would be fantastic. That said, I'm here to suggest a system contributor "roles" like editor, foreword, translator, etc., which are causing some duplicates in my author list. Contributor info could have additional fields to reference a specific chapter.
Another thing to think about is where the info comes from. As far as I know, there's no structured source for audio chapter<->story/author/narrator information on Audible or anywhere else.
I haven't done enough research to know whether M4A supports per chapter artists as well as titles, but if it does, that might be a good place to encode it. I'll also have to check my anthologies for any extra info.
@cassieesposito commented on GitHub (Jan 17, 2023):
I don't think there are any automated metadata sources that provide this kind of information on a per-chapter basis -- and indeed, I've seen the same audio broken up in to different chapterizations depending on the source (CD, audible, libro.fm, etc), so I wouldn't trust imported metadata on that anyway.
I also don't think that's all that important. Even if it means manually entering a lot of metadata for each anthology, this would still be huge.
@iconoclasthero commented on GitHub (Sep 18, 2023):
I would like to see a way to differentiate between authors and editors. I just ran across Rethinking American Grand Strategy and it has three editors. What I have done with this is to put it in my normal folder format and throw an editor tag on it:
Borgwardt, Elizabeth, et al. (Eds.) -- Rethinking American Grand Strategy (2021) so that I could distiburgh edited collections vs works written by the people on the covers. Perhaps a checkbox next to the authors field in the edit screen to indicate editors would be sufficient.
@manalive commented on GitHub (Feb 1, 2024):
I switched from using Plex because I was anticipating this feature would exist, only to find out that this is perhaps the only thing Plex actually does ok (allows individual tracks to show up under the "artist").
I have LOTS of anthologies, and I have even more audio dramas that have this plus further complications.
All of my anthologies have the "stories" in their own file, so the Artist tags can be used. For files that aren't split conveniently, I would still be willing to input the data so that they show up correctly.
@manalive commented on GitHub (Feb 2, 2024):
Other use cases:
For alternating/guest authors, we can put the author in the title, but then the tracks won't show up under an author view, and if we put them as the album artist, it will show up under their author page along with books they actually wrote which is sub-optimal.
My test case for any audio metadata system is Powers of Darkness: https://www.audible.com/pd/Powers-of-Darkness-Audiobook/B07C2FXQV6
An Icelandic publisher tried to translate Bram Stoker's Dracula and made so many changes that it ended up being a completely different book. Stoker actually wrote a preface for it. The researcher who found it and had it translated back into English wrote an Introduction for it. A literary scholar wrote an Afterword. Stoker's great-grand-nephew wrote a Forward. Then there is the translator. The audiobook has 6 narrators to give voice to these different pieces of the book.
It's not really a problem for all these names to show at the top (in fact, having a Title Author(s) and a Chapter Authors section would be great), but seeing the information at the chapter (or failing that, track level) would be optimal, and having the author page split into sections or tabs for Author, Narrator, Contributor (with the 'role' like "translator", "editor", "chapter author", etc. under the album art) would be fantastic.
@SenorSmartyPants commented on GitHub (Jun 8, 2024):
Coming from a multifile mp3/ID3 perspective, lots of this metadata can be tagged in the individual track files. Following Seanap's guide and looking to music compilation tagging:
Album: Book Title
Album Artist: Book/Anthology Author (perhaps editor)
Title: Chapter Title
Artist: Track level Author/Narrator (I only put Author in Artist tag)
Composer: Track Narrator
One book I have like this has narrator info tagged into track comments. But I'm not sure about that.
I can't really speak to how to handle this as a single file MP3 or M4B. And I would guess that ABS database does not currently support these attributes at the chapter level.
@Antimarkovnikov commented on GitHub (Oct 10, 2024):
I would like to add my interest in having per chapter progress for anthologies and collections of short stories. My ADHD brain wants to be able to jump between stories and listen to them out of order and still remember which of them I've listened to.