[Enhancement]: Change "Author" table to "People" table #1697

Open
opened 2026-04-24 23:55:23 +02:00 by adam · 4 comments
Owner

Originally created by @nichwall on GitHub (Jan 27, 2024).

Describe the feature/enhancement

This feature request is to rename the "Author" table as a "People" table to handle both authors and narrators.
This would necessitate:

  • Creating a new bookNarrators table which can contain the same columns as the bookAuthors table.
  • Removing the narrators column from the books table

The following is a screenshot of the schema relation between the authors and books in server version 2.7.0
image

Reasoning

It would be easier to implement generic "People" functionality for both the narrators and authors page, such as:

  • Sorting (number of books, name, recently added, etc) #2547
  • Switching between list and grid view (similar to mobile view for audiobooks)

The author cards can be reused with "X Books" referencing whether on the authors page or narrators page.
Screenshot_20240127-065022

The narrators would have less information since it looks like Audible does not provide an ASIN like it does for authors, meaning users would need to manually get narrator details, but then the functionality is there and structure is consistent.

There would need to be a way to distinguish between authored and narrated books on the individual person page if they are both an author and a narrator, but I think at that point it's usually just authors narrating there own books. Maybe just having two shelves of "All books" of the author has any books that are not both authored and narrated by them?

Originally created by @nichwall on GitHub (Jan 27, 2024). ### Describe the feature/enhancement This feature request is to rename the "Author" table as a "People" table to handle both authors and narrators. This would necessitate: - Creating a new `bookNarrators` table which can contain the same columns as the `bookAuthors` table. - Removing the `narrators` column from the `books` table The following is a screenshot of the schema relation between the authors and books in server version 2.7.0 ![image](https://github.com/advplyr/audiobookshelf/assets/5686638/c7ead27c-dd4f-4ba2-a29c-0ce3f89a5254) ## Reasoning It would be easier to implement generic "People" functionality for both the narrators and authors page, such as: - Sorting (number of books, name, recently added, etc) #2547 - Switching between list and grid view (similar to mobile view for audiobooks) The author cards can be reused with "X Books" referencing whether on the authors page or narrators page. ![Screenshot_20240127-065022](https://github.com/advplyr/audiobookshelf/assets/5686638/10ac8741-177b-42f9-b492-1c4e3e6e3253) The narrators would have less information since it looks like Audible does not provide an ASIN like it does for authors, meaning users would need to manually get narrator details, but then the functionality is there and structure is consistent. There would need to be a way to distinguish between authored and narrated books on the individual person page if they are both an author and a narrator, but I think at that point it's usually just authors narrating there own books. Maybe just having two shelves of "All books" of the author has any books that are not both authored and narrated by them?
adam added the enhancement label 2026-04-24 23:55:23 +02:00
Author
Owner

@Gru0810 commented on GitHub (Feb 1, 2024):

I (a User) agree with nichwall.
But then there must be two Columns of Books-Count , one Books-count as Author and one as Book-Count as Narrator with filter and sorting .
With this solution we can re-user a Author as Narrator with all his informations ( Dersc, Pic, ASIN).
It would also be interesting and helpful to add a field "YearOfBirth" including filter on this field.
This enh match also with : https://github.com/advplyr/audiobookshelf/issues/2224

@Gru0810 commented on GitHub (Feb 1, 2024): I (a User) agree with nichwall. But then there must be two Columns of Books-Count , one Books-count as Author and one as Book-Count as Narrator with filter and sorting . With this solution we can re-user a Author as Narrator with all his informations ( Dersc, Pic, ASIN). It would also be interesting and helpful to add a field "YearOfBirth" including filter on this field. This enh match also with : https://github.com/advplyr/audiobookshelf/issues/2224
Author
Owner

@manalive commented on GitHub (Feb 2, 2024):

I also agree with this because, on its own, it's a good idea because Authors can be Narrators.

But it also gets us closer to future role features, which would be very useful. A person conceptually can be:

  • Voice Talent (narrator, voice actor)
  • Content Talent (author, editor, translator)
  • Production (producer, composer, etc.)
  • Subject matter (basically a link to a content tag)

I have many audio dramas (which have lots of production staff and voice actors) and books with translators and editors who are also authors or narrators in their own right.

Ideally, I would like to pull up Tolkien and see the books he authored, the books he translated (Beowulf), the recordings I've collected where he is the narrator, and also any biographical books (or -thinking big- podcast episodes) about him in the same place.

@manalive commented on GitHub (Feb 2, 2024): I also agree with this because, on its own, it's a good idea because Authors can be Narrators. But it also gets us closer to future role features, which would be very useful. A person conceptually can be: - Voice Talent (narrator, voice actor) - Content Talent (author, editor, translator) - Production (producer, composer, etc.) - Subject matter (basically a link to a content tag) I have many audio dramas (which have lots of production staff and voice actors) and books with translators and editors who are also authors or narrators in their own right. Ideally, I would like to pull up Tolkien and see the books he authored, the books he translated (Beowulf), the recordings I've collected where he is the narrator, and also any biographical books (or -thinking big- podcast episodes) _about_ him in the same place.
Author
Owner

@Majester commented on GitHub (Feb 25, 2024):

Sounds very much like the Person tag used in the podcast-namespace. ( https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person )

@Majester commented on GitHub (Feb 25, 2024): Sounds very much like the Person tag used in the podcast-namespace. ( https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person )
Author
Owner

@Timo-1979 commented on GitHub (Nov 23, 2025):

To support mutiple roles (like @manalive mentioned) and avoid to have for each role a mapping table. (bookAuthors, bookNarrators, bookTranslators,...) if would be possible rename the bookAuthors in bookPeople and add a column "role" to that table. This column could be an enum or a forein-key to a roles table.

In this way it would be easy to add new roles in the future and / or to add custom roles via the administration.

@Timo-1979 commented on GitHub (Nov 23, 2025): To support mutiple roles (like @manalive mentioned) and avoid to have for each role a mapping table. (bookAuthors, bookNarrators, bookTranslators,...) if would be possible rename the bookAuthors in bookPeople and add a column "role" to that table. This column could be an enum or a forein-key to a roles table. In this way it would be easy to add new roles in the future and / or to add custom roles via the administration.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#1697