You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#139 reads what's in the tags, and audiobook tagging in the wild is poor — plenty of collections are a folder name and a bitrate. #134's enrichment path resolves books through the AIO Catalog addon (Google Books / Open Library), but audiobooks have their own fields that path doesn't supply, and one of them is the field listeners actually browse by.
What's missing specifically
Narrator. For audiobooks this is closer to "director" than to a footnote — people choose editions by it, follow narrators across series, and abandon books over them. Nothing in our stack supplies it.
Series and position — audiobook series numbering is frequently absent from tags and present in the title string (Book 3 of …), so it needs matching rather than parsing.
Sources through the addon model, deliberately. Open Library and Google Books have official public APIs and are the sane defaults. The audiobook-specific data the ecosystem leans on (Audible's catalogue — narrator, series, ASIN) has no official public API; the tools that use it rely on unofficial endpoints. That's exactly the kind of source that belongs behind an addon rather than compiled into the app: an addon declaring metaFor: ["audiobook"] can serve it, the aggregator merges it by role precedence like any other provider, and the app stays neutral about where it came from. Consistent with how the four game-art providers already work, and with the project's posture generally.
Match confidence, surfaced. Audiobook titles match badly (abridged vs unabridged, dramatizations, re-recordings with different narrators). Show what was matched and let the user reject it — Per-item metadata editor: fix a wrong scrape without re-matching the whole library #24's per-item metadata editor is the natural home for the correction, and a bad audiobook match is more visible than a bad film match because the narrator will simply be wrong.
Not in scope: writing matched metadata back into the files (tagger's job — same call as #152 and the Calibre sweep), and matching for server-owned items, where the server supplies its own metadata (#197 for Audiobookshelf, EverythingBoxServer#24 for ours).
#139 reads what's in the tags, and audiobook tagging in the wild is poor — plenty of collections are a folder name and a bitrate. #134's enrichment path resolves books through the AIO Catalog addon (Google Books / Open Library), but audiobooks have their own fields that path doesn't supply, and one of them is the field listeners actually browse by.
What's missing specifically
Book 3 of …), so it needs matching rather than parsing.Proposed behaviour
MetaCache— applies unchanged. Local tags always win; this fills blanks.metaFor: ["audiobook"]can serve it, the aggregator merges it by role precedence like any other provider, and the app stays neutral about where it came from. Consistent with how the four game-art providers already work, and with the project's posture generally.Not in scope: writing matched metadata back into the files (tagger's job — same call as #152 and the Calibre sweep), and matching for server-owned items, where the server supplies its own metadata (#197 for Audiobookshelf, EverythingBoxServer#24 for ours).