dagu: nightly Audiobookshelf quick-match #379

Closed
opened 2026-10-07 15:54:07 -04:00 by mysticalsoap · 2 comments
Owner

New audiobooks land in Audiobookshelf unmatched: series and sequence come from Audible only on Match/Quick Match, which is a click per book today (PR #376). Hardcover gives Bookshelf no series data for these titles, so writing tags from the *arr side is not an option.

  • Dagu DAG next to the metadata jobs: one POST /api/libraries/<id>/matchall against http://audiobookshelf:13378 nightly. With "skip matching media with ASIN" on, only unmatched items are touched, so the job is idempotent.
  • Auth: an Audiobookshelf API key (Settings → API Keys, 2.37+) tied to a non-root admin account, stored under dagu/secrets/ (user-created, Pattern 1), not the root login.
  • Trade-off to document on the setup page: Quick Match takes the first Audible hit, so an obscure title can mismatch; same as the manual button.
  • Related: #377 (knock provisioning) may share the admin account/key.
New audiobooks land in Audiobookshelf unmatched: series and sequence come from Audible only on Match/Quick Match, which is a click per book today (PR #376). Hardcover gives Bookshelf no series data for these titles, so writing tags from the *arr side is not an option. - Dagu DAG next to the metadata jobs: one `POST /api/libraries/<id>/matchall` against `http://audiobookshelf:13378` nightly. With "skip matching media with ASIN" on, only unmatched items are touched, so the job is idempotent. - Auth: an Audiobookshelf API key (Settings → API Keys, 2.37+) tied to a non-root admin account, stored under `dagu/secrets/` (user-created, Pattern 1), not the root login. - Trade-off to document on the setup page: Quick Match takes the first Audible hit, so an obscure title can mismatch; same as the manual button. - Related: #377 (knock provisioning) may share the admin account/key.
Author
Owner

Superseded by folder naming, 2026-10-07. The premise was off: Hardcover does give Bookshelf the series (every Dinniman book carries Dungeon Crawler Carl #N). Bookshelf-audio's Standard Book Format is now {Book Series}/{Book SeriesPosition} - {Book Title}/{Author Name} - {Book Title}{ (PartNumber)}, and Audiobookshelf reads series and sequence from Author/Series/N - Title on scan, so a new release files correctly with no Match. Verified on the eight existing books (renamed, still hardlinked, series kept).

What a nightly match-all would still add is description, cover and narrator for a release whose tags lack them. Six of the eight here had a description embedded and all had cover art, so nothing to build until a bare one turns up. Note for then: "prefer matched metadata" is on server-wide, so a match overrides tag-derived fields on the items it touches; the library's "skip matching media with ASIN" is on, which keeps already-identified items out of it.

Tag writing from Bookshelf is not an alternative: Readarr's AudioTag.cs has no series, narrator or ASIN fields, and the servarr wiki says it writes in place with no hardlink protection, which would corrupt the seed.

Superseded by folder naming, 2026-10-07. The premise was off: Hardcover does give Bookshelf the series (every Dinniman book carries `Dungeon Crawler Carl #N`). Bookshelf-audio's Standard Book Format is now `{Book Series}/{Book SeriesPosition} - {Book Title}/{Author Name} - {Book Title}{ (PartNumber)}`, and Audiobookshelf reads series and sequence from `Author/Series/N - Title` on scan, so a new release files correctly with no Match. Verified on the eight existing books (renamed, still hardlinked, series kept). What a nightly match-all would still add is description, cover and narrator for a release whose tags lack them. Six of the eight here had a description embedded and all had cover art, so nothing to build until a bare one turns up. Note for then: "prefer matched metadata" is on server-wide, so a match overrides tag-derived fields on the items it touches; the library's "skip matching media with ASIN" is on, which keeps already-identified items out of it. Tag writing from Bookshelf is not an alternative: Readarr's `AudioTag.cs` has no series, narrator or ASIN fields, and the servarr wiki says it writes in place with no hardlink protection, which would corrupt the seed.
Author
Owner

Correction to the comment above: folder naming covers series and sequence, not titles. Audiobookshelf takes the title from the album tag, which differs per release, and the only automatic cleaner is the Audible match. Built as filed, plus a Bookshelf-audio import hook that enqueues the same DAG; the PR that closes this has the verification.

Correction to the comment above: folder naming covers series and sequence, not titles. Audiobookshelf takes the title from the album tag, which differs per release, and the only automatic cleaner is the Audible match. Built as filed, plus a Bookshelf-audio import hook that enqueues the same DAG; the PR that closes this has the verification.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mysticalsoap/docker#379
No description provided.