Repository navigation
Conversation
Support recording-specific AudiobookDB metadata and cover matching through the native provider workflow with an operator account key. Preserve exact ASIN identity and bound query and hydration work. Surface key and quota failures, stop failed batches without losing completed updates, and document setup with contextual source attribution.
djdembeck
marked this pull request as draft
October 28, 2026 14:08
Audiobookshelf stores a downloaded cover verbatim, so the 768px /large.jpg derivative permanently downgraded every applied cover. Prefer the API's full-resolution sourceUrl original and fall back to the 1200px /detail.jpg derivative when an original is unavailable.
The readme is a product overview: provider selection, matching edge cases, key setup, quota accounting, and the compose override belong in the docs sites, not here. Keep the advertised feature and the mandatory AUDIOBOOKDB_API_KEY prerequisite in one line.
Contributor
|
Very high level review from just skimming the code:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brief summary
AudiobookDB becomes a first-class metadata source for books: manual matching, quick match, cover searches, and library scans now use a native provider that talks directly to the AudiobookDB API with an operator-provided account key. Previously AudiobookDB coverage was incomplete in several matching flows and release-specific data did not survive to the library.
Which issue is fixed?
None — this adds a native metadata provider rather than fixing a reported issue.
In-depth Description
AudiobookDB hosts one of the deepest audiobook release catalogs, but its data model (one book, many releases) does not map cleanly onto generic providers. A library item is a specific recording, so a title-only match can attach the wrong release's edition and metadata. A native provider that understands releases, and that treats provider failures as distinct from an empty catalog, is what makes the source reliable for matching and scanning instead of a partial fallback.
Covers are the other release-level identity: the server stores a downloaded cover verbatim, so a resized display derivative silently becomes the permanent cover. The provider therefore requests the catalog image's full-resolution original (
sourceUrl) and only falls back to the largest documented CDN derivative (1200px/detail.jpg) when no original is available.Changes
sourceUrloriginal, with the 1200px/detail.jpgderivative only as a fallback, so applying a cover no longer downgrades the stored image.AUDIOBOOKDB_API_KEYprerequisite, leaving setup, quota, and matching details to the documentation sites.How have you tested this?
npm test) at this PR head, including loopback transport tests for search, covers-only lookups, and the batch failure paths;eslintclean on every changed file.tsc -p tsconfig.server.json) passes.GET /api/books/{id}DTO shape, plus CDN checks for thesourceUrl,/detail.jpg,/large.jpg,/medium.jpg, and/small.jpgvariants (real dimensions and byte sizes). One full cover download was exercised throughCoverManager.downloadCoverFromUrlNewand stored at the original 2400×2400 size.Screenshots
Not attached yet. The client changes are the match modal provider/ASIN field, the batch failure reporting, and the AudiobookDB attribution; before/after captures can be added when the branch is marked ready for review.