Repository: jellyfin/jellyfin.org
Pull request #1320: Combine books and comics
Author: login: felix920506
Created: 2025-03-05T20:28:32Z | Merged: 2025-03-18T15:05:48Z

I am missing the following info that needs clarifying by someone more familiar with the matter
~~- [ ] A screenshot that shows different types of external images~~ it can wait till a future pr
- [x] Info about how metadata is handled for audiobooks


Diff:
diff --git a/docs/general/server/media/books.md b/docs/general/server/media/books.md
index 8af9eb133..06c46f606 100644
--- a/docs/general/server/media/books.md
+++ b/docs/general/server/media/books.md
@@ -5,51 +5,61 @@ title: Books
 
 # Books
 
-The most common organization scheme for books is separation by Audiobook then by Author.
+The bookshelf plugin is required for books libraries.
+
+Books should be organized by type (Audiobooks, Books, Comics), then optionally by Author. Each book should be in their own folder.
 
 ```txt
 Books
 ├── Audiobooks
 │   ├── Author
-│   │   ├── Book1.flac
-│   │   └── Book2.flac
-│   └── Book
-│       ├── Chapter1.flac
-│       └── Chapter2.flac
-└── Books
-    └── Author
-        ├── Book1.epub
-        ├── Book2.epub
-        ├── Book
-        │   ├── Book1.epub
-        │   ├── cover.ext
-        │   └── metadata.opf
-        └── Book3.mp3
+│   │   ├── Book1
+│   │   │   └── Book1.flac
+│   │   └── Book2
+│   │       └── Book2.mp3
+│   └── Book3
+│       ├── Book3.aac
+│       ├── content.opf
+│       └── cover.jpg
+├── Books
+│   └── Author
+│       ├── Book4
+│       │   └── Book4.epub
+│       ├── Book5
+│       │   └── Book5.epub
+│       ├── Book6
+│       │   ├── Book6.epub
+│       │   ├── cover.png
+│       │   └── metadata.opf
+│       └── Book7
+│           └── Book7.pdf
+└── Comics
+    ├── Plastic Man (1944)
+    │   └── Plastic Man #002 (1944).cbz
+    ├── Attack on Titan (2012)
+    │   └── Attack on Titan #001 (2012).pdf
+    └── Comic (2008)
+        ├── ComicInfo.xml
+        └── Comic #001 (2008).cbr
 ```
 
-File extensions supported include azw, azw3, cb7, cbr, cbt, cbz, epub, mobi, and pdf.
-
-## Local Metadata
-
-In case the book is stored in the epub format, internal metadata can be provided. For every other format, metadata has to be provided externally in a `content.opf` or `metadata.opf` file. When multiple books have been published by the same author, it is recommended to place each book into a seperate folder. This allows to provide local metadata for every book.
-
-Either the `content.opf` or the `metadata.opf` file can tell Jellyfin which file should be used for the books cover. Usually, this is the `cover.ext` file. The abbreviation `ext` stands for extension, e.g. `.png` or `.jpg`.
-
-## Primary
+For audiobooks, most common audio extensions are supported. For other books, the following formats are supported: azw, azw3, cb7, cbr, cbt, cbz, epub, mobi, pdf, zip, rar, 7z. Read-along audiobooks are not supported by Jellyfin.
 
-* folder
-* poster
-* cover
+## Metadata
 
-## Banner
+Online metadata is not supported for the books library type.
 
-* banner
+For media in audio formats, the metadata is read from the embedded tags of the audio files. FLAC files with WebP embedded images or ID3 tags might fail to play on some browsers. Enable the `Always remux flac option` in the settings if you are experiencing this problem.
 
-## Logo
+For books in epub format, embedded metadata can be provided, For other formats, the metadata has to be provided in an external `content.opf`, `metadata.opf` or `ComicInfo.xml` file. The ComicInfo (from ComicRack) and ComicBookInfo (from ComicBookLover) formats are supported for `ComicInfo.xml` files.
 
-* logo
+Additionally, information about year and issue number can be provided in the file names, as seen in the example above. For comics or magazines with issues across multiple years, the year of the first issue should be used.
 
-## Thumb
+The files above can contain info about what images to use for cover images. Alternatively, They can be provided as external image files named in a specific manner, as listed below.
 
-* thumb
-* landscape
+| Type    | Names                       |
+| ------- | --------------------------- |
+| Primary | `folder`, `poster`, `cover` |
+| Banner  | `banner`                    |
+| Logo    | `logo`                      |
+| Thumb   | `thumb`, `landscape`        |
diff --git a/docs/general/server/media/comics.md b/docs/general/server/media/comics.md
deleted file mode 100644
index 31e446d43..000000000
--- a/docs/general/server/media/comics.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-uid: server-media-comics
-title: Comics
----
-
-# Comics / Mangas
-
-Comics and mangas, from now on referred to as comics, should usually be in the library root directory or in a subfolder for the individual comics. The subfolders allow for organization of metadata and images. They use the "Books" library type and metadata is provided with the Bookshelf plugin.
-
-:::note
-
-For the best reading experience, it is recommended to store comics in the comic book archive or pdf format. This is due to issues when trying to read comics stored in the epub format. Please note, that Jellyfin 10.8 and later saves your reading position for comics in the comic book archive format but does not save whether you finished the comic or not.
-
-:::
-
-## Naming
-
-:::note
-
-The Bookshelf plugin does not provide an online metadata provider that is specific to comics. Metadata can either be provided from the same providers used for books or from local files.
-
-:::
-
-For best results, it is recommended to name the files similar to the following schema where the volume number and issue number are used **interchangeable**.
-
-```txt
-Series_Name #IssueNumber (of Count) (PubYear).ext
-Series_Name (SeriesYear) #IssueNum (of Count) (PubYear).ext
-```
-
-- Count = Total number of issues
-- PubYear = Publication year of the issue
-- SeriesYear = Start year of the series
-- .ext = file extension, e.g. `.cbz` or `.cbr`. For a list of supported file extensions, please refer to the [section on books](/docs/general/server/media/books).
-
-Take a look at the following example:
-
-```txt
-Comics
-├── Plastic Man #002 (1944).cbz
-├── Attack on Titan #001 (2012).cbz
-└── Comic (2008)
-    ├── ComicInfo.xml
-    └── Comic #001 (2008).cbr
-```
-
-Placing comics into a subfolder allows the placement of a `ComicInfo.xml` file for metadata parsing. Currently, Jellyfin does not support this for a series as a whole, but only for individual comics.
-
-## Local Metadata for "Comic Book Archive's"
-
-Should your files **not** correspond to either `.cbz` or `.cbr` files, please refer to the [section on books](/docs/general/server/media/books) to see what is supported.
-
-The following metadata formats are supported:
-
-- ComicInfo (from ComicRack)
-- ComicBookInfo (from ComicBookLover)
-
-:::note
-
-The ComicBookInfo format is supported when using the Bookshelf plugin version 8 or later.
-
-:::
-
-Should the ComicInfo be used, please make sure that the comic provides the metadata. If it does not, a `ComicInfo.xml` file can be placed in the same folder as the comic and the metadata will be parsed from this file.
-
-:::note
-
-For comics using the `.cbr` format, it is required to place a `ComicInfo.xml` file inside the folder. This file should contain the metadata of that comic.
-
-:::
diff --git a/redirects.ts b/redirects.ts
index 7f7ffdbc7..89e1566ec 100644
--- a/redirects.ts
+++ b/redirects.ts
@@ -47,6 +47,11 @@ const redirects: ClientRedirects.Options['redirects'] = [
   {
     from: '/docs/general/server/media/internet-radio',
     to: '/docs/general/server/live-tv/internet-radio'
+  },
+  // Merge comic and books
+  {
+    from: '/docs/general/server/media/comics',
+    to: '/docs/general/server/media/books'
   }
 ];
 export default redirects;


Reviews:
user: login: Kara-Zor-El
body: LGTM
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-06T02:02:36Z
user: login: thornbill
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-06T02:52:47Z
user: login: joshuaboniface
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-18T02:56:20Z

Review comments:
diff_hunk: @@ -5,51 +5,67 @@ title: Books
 
 # Books
 
-The most common organization scheme for books is separation by Audiobook then by Author.
+:::note
+
+How Jellyfin handles books are undergoing a major redesign. Information on this page is very likely to change with future releases.
+
+:::
+
+The bookshelf plugin is required for books libraries.
+
+Books should be organized by type (Audiobooks, Books, Comics), then optionally by Author. Each book should be in their own folder.
 
 ```txt
 Books
 ├── Audiobooks
 │   ├── Author
-│   │   ├── Book1.flac
-│   │   └── Book2.flac
-│   └── Book
-│       ├── Chapter1.flac
-│       └── Chapter2.flac
-└── Books
-    └── Author
-        ├── Book1.epub
-        ├── Book2.epub
-        ├── Book
-        │   ├── Book1.epub
-        │   ├── cover.ext
-        │   └── metadata.opf
-        └── Book3.mp3
+│   │   ├── Book1
+│   │   │   └── Book1.flac
+│   │   └── Book2
+│   │       └── Book2.mp3
+│   └── Book3
+│       ├── Book3.aac
+│       ├── content.opf
+│       └── cover.jpg
+├── Books
+│   └── Author
+│       ├── Book4
+│       │   └── Book4.epub
+│       ├── Book5
+│       │   └── Book5.epub
+│       ├── Book6
+│       │   ├── Book6.epub
+│       │   ├── cover.png
+│       │   └── metadata.opf
+│       └── Book7
+│           └── Book7.pdf
+└── Comics
+    ├── Plastic Man (1944)
+    │   └── Plastic Man #002 (1944).cbz
+    ├── Attack on Titan (2012)
+    │   └── Attack on Titan #001 (2012).pdf
+    └── Comic (2008)
+        ├── ComicInfo.xml
+        └── Comic #001 (2008).cbr
 ```
 
-File extensions supported include azw, azw3, cb7, cbr, cbt, cbz, epub, mobi, and pdf.
-
-## Local Metadata
-
-In case the book is stored in the epub format, internal metadata can be provided. For every other format, metadata has to be provided externally in a `content.opf` or `metadata.opf` file. When multiple books have been published by the same author, it is recommended to place each book into a seperate folder. This allows to provide local metadata for every book.
-
-Either the `content.opf` or the `metadata.opf` file can tell Jellyfin which file should be used for the books cover. Usually, this is the `cover.ext` file. The abbreviation `ext` stands for extension, e.g. `.png` or `.jpg`.
-
-## Primary
+For audiobooks, most common audio extensions are supported. For other books, the following formats are supproted: azw, azw3, cb7, cbr, cbt, cbz, epub, mobi, pdf, zip, rar, 7z. Read-along audiobooks are not supported by Jellyfin.
path: docs/general/server/media/books.md
user: login: Kara-Zor-El
body: supported misspelled
created_at: 2025-03-06T02:01:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -5,51 +5,67 @@ title: Books
 
 # Books
 
-The most common organization scheme for books is separation by Audiobook then by Author.
+:::note
+
+How Jellyfin handles books are undergoing a major redesign. Information on this page is very likely to change with future releases.
path: docs/general/server/media/books.md
user: login: thornbill
body: Lies 🙃
created_at: 2025-03-06T02:52:42Z
author_association: MEMBER

PR comments:
user: login: felix920506
created_at: 2025-03-18T13:36:35Z
body: @jellyfin-bot rebase
author_association: MEMBER
user: login: jellyfin-bot
created_at: 2025-03-18T15:06:23Z
body: ## Cloudflare Pages deployment

| **Latest commit** | <code>fdc835c79047285f5fe6b254c66d47dd47922bde</code> |
|-------------------|:-:|
| **Status**        | ✅ Deployed! |
| **Preview URL**   | https://1b29716e.jellyfin-org.pages.dev |
| **Type**          | 🔀 Preview |
<!-- thollander/actions-comment-pull-request "CFPages-deployment" -->
author_association: NONE