Skip to content

Add Goodreads library import - #794

Draft
TrapEmAll wants to merge 1 commit into
Listenarrs:canaryfrom
TrapEmAll:agent/goodreads-import
Draft

Add Goodreads library import#794
TrapEmAll wants to merge 1 commit into
Listenarrs:canaryfrom
TrapEmAll:agent/goodreads-import

Conversation

@TrapEmAll

Copy link
Copy Markdown

Summary

Adds a Goodreads library import path that reuses Listenarr's existing library add workflow.

  • adds POST /api/v{version}/library/import/goodreads
  • supports Goodreads export CSV via csvContent and public Goodreads list/shelf URLs via url
  • parses Goodreads books into existing audiobook metadata and imports them through ILibraryAddService
  • returns per-item added/skipped/error results with summary counts
  • documents the endpoint and import limitations in the README

Notes

CSV import is the most reliable path because Goodreads exports include ISBNs, which Listenarr can use for existing duplicate detection. Public Goodreads URL import is best-effort HTML parsing and may only provide title, author, Goodreads ID, and source URL. Goodreads IDs are returned in the import result but are not persisted as a first-class identifier because the current identifier enum does not include Goodreads and adding one would require a schema migration plus UI/API contract expansion.

Validation

  • dotnet test tests\Listenarr.Tests.csproj --no-restore --filter Goodreads
  • dotnet build listenarr.slnx --no-restore

@TrapEmAll
TrapEmAll marked this pull request as ready for review August 2, 2026 16:20
@TrapEmAll
TrapEmAll requested a review from a team August 2, 2026 16:20
@TrapEmAll
TrapEmAll marked this pull request as draft August 2, 2026 16:27
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.

1 participant