advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
6.22k stars 434 forks source link

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

Open nichwall opened 7 months ago

nichwall commented 7 months ago

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:

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:

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?

Gru0810 commented 7 months ago

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

manalive commented 7 months ago

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:

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.

Majester commented 6 months ago

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 )