Treat narrators as a distinguishing field to prevent merging different recordings...
authorhayupadhyaya <41875548+hayupadhyaya@users.noreply.github.com>
Tue, 24 Feb 2026 08:17:11 +0000 (03:17 -0500)
committerGitHub <noreply@github.com>
Tue, 24 Feb 2026 08:17:11 +0000 (09:17 +0100)
commitbc145995349b4b3d55da786f275f9c33bd63cc08
tree233596a764fcb5507fee0b31e1c624782759fc64
parent06087c901e29fcec9418526077f8ac005717ab51
Treat narrators as a distinguishing field to prevent merging different recordings (#3230)

fix(audiobooks): treat narrators as a distinguishing field to prevent merging different recordings

Audiobooks with the same title and author but different narrators
(e.g. the same Harry Potter title read by Stephen Fry and Jim Dale)
were being merged into a single library item. This caused:
- Only one narrator to be retained in the merged item
- Chapter lists from all recordings to be concatenated, producing
  incorrect (doubled) chapter counts
- No way for clients to retrieve per-recording metadata via the API

Fix: in compare_audiobook(), add a narrator check before the author
comparison. When both items have narrators and no narrators are shared,
return False so they are treated as distinct recordings.

This change is safe for the single-narrator case: if either item has no
narrator metadata, the check is skipped and existing behaviour is
unchanged.

Co-authored-by: hayupadhyaya <hayupadhyaya@users.noreply.github.com>
music_assistant/helpers/compare.py