Context
Split from #19. Implements IEnrichmentProvider for Open Library, covering book quotes. Depends on the shared enrichment scaffold (#19); does not depend on TMDB (#35), Wikidata (#37), or TVDB (#46).
API details
| Property |
Value |
| Base URL |
https://openlibrary.org |
| Auth |
None required |
| Rate limit |
No hard limit for modest use |
| Endpoints |
/search.json?title=...&type=/type/work |
What gets enriched
| Field |
How |
author |
Open Library author_name from the best-matching work |
date |
first_publish_year from the best-matching work |
Implementation checklist
Notes
Context
Split from #19. Implements
IEnrichmentProviderfor Open Library, coveringbookquotes. Depends on the shared enrichment scaffold (#19); does not depend on TMDB (#35), Wikidata (#37), or TVDB (#46).API details
https://openlibrary.org/search.json?title=...&type=/type/workWhat gets enriched
authorauthor_namefrom the best-matching workdatefirst_publish_yearfrom the best-matching workImplementation checklist
OpenLibraryEnrichmentProvider : IEnrichmentProviderinQuotinator.EnrichmentSupportedTypes:booksourcefield title; apply enrichment only on a confident title matchauthor_name[](array) to the singleauthorstring — use the first entry; flag if multiple authors existscripts/cache/openlibrary/--dry-run,--no-fetch, and--providerflags from the scaffoldNotes
number_of_pages_medianoredition_countas a confidence signal if neededgenresfor books are not reliably structured in Open Library; defer to manual curation or a future source