Skip to content

Add Audible metadata provider via Audimeta#762

Open
cadric wants to merge 3 commits intocalibrain:mainfrom
cadric:feat/audible-provider
Open

Add Audible metadata provider via Audimeta#762
cadric wants to merge 3 commits intocalibrain:mainfrom
cadric:feat/audible-provider

Conversation

@cadric
Copy link

@cadric cadric commented Mar 13, 2026

Closes #515

Summary

This adds a new audible metadata provider backed by the Audimeta API.

The provider supports:

  • Audible/Audimeta metadata lookup without authentication
  • region selection (us, ca, uk, au, fr, de, jp, it, in, es, br)
  • ASIN book lookup
  • ISBN lookup with fallback search
  • series suggestions and series-order browsing
  • richer audiobook metadata such as narrators, runtime, rating, subtitle, cover, publisher, and series info
  • configurable Audimeta base URL, timeout, cache usage, default sort, and unreleased filtering

Notes

A few Audimeta-specific integration details were needed:

  • send a meaningful User-Agent, otherwise Audimeta rejects requests with 403
  • send the cache parameter in the format Audimeta expects
  • use keywords for general search instead of query, which gave poor/irrelevant results for title-style
    searches

Validation

Tested locally with:

  • python -m py_compile shelfmark/metadata_providers/audible.py
  • python -m pytest tests/metadata/test_audible.py -v
  • python -m pytest tests/metadata/test_metadata_provider_capabilities.py -v

Also verified manually in a Podman test container:

  • searching for Discount Dan returns Audible title B0DXLXRNGG
  • book details and series metadata load correctly

Scope

This PR intentionally keeps the change localized to the provider layer and docs:

  • new Audible provider
  • provider registration
  • provider docs
  • generated environment variable docs

@alexhb1
Copy link
Collaborator

alexhb1 commented Mar 13, 2026

Looks great! thanks for the work. I'll have a full look at this at the weekend.

One thing, you mentioned running test_audible.py. Is this safe to include in the PR also?

@cadric
Copy link
Author

cadric commented Mar 13, 2026

Looks great! thanks for the work. I'll have a full look at this at the weekend.

One thing, you mentioned running test_audible.py. Is this safe to include in the PR also?

I have added the test_audible.py file.

@cadric
Copy link
Author

cadric commented Mar 13, 2026

I pushed two small follow-up fixes:

  1. Fixed Audible "View series" browsing so the frontend's id:<seriesId> format resolves correctly.
  2. Cleaned Audible descriptions so HTML tags like <p> do not appear in the details modal.

Also added test coverage for both cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE REQUEST] Audimeta / Audinex metadata provider

2 participants