Help needed writing documentation! This website is on github. Join the discussion, report an issue or contact me directly at advplyr@protonmail.com.
Audiobookshelf works best when you have an organized directory structure like shown below. This is because information is taken from your folder names. This includes the author name, series name, book title, publish year, volume number, and subtitle. However, you can enable scanner settings to prefer using your audio file ID3 tags or an OPF file over using folder names.
Multi-architecture image for amd64, arm64 and arm/v7
docker pull ghcr.io/advplyr/audiobookshelf
docker run -d \
-e AUDIOBOOKSHELF_UID=99 \
-e AUDIOBOOKSHELF_GID=100 \
-p 13378:80 \
-v </path/to/config>:/config \
-v </path/to/metadata>:/metadata \
-v </path/to/audiobooks>:/audiobooks \
-v </path/to/podcasts>:/podcasts \
--name audiobookshelf \
--rm ghcr.io/advplyr/audiobookshelf
Note: Remember to change the path to your actual directory and remove the <> symbols
Note: Volume mappings should all be separate directories that are not contained in eachother
Note: Windows users will need to remove the \ and run this as a single line
Volume mappings
• /config will contain the database (users/books/libraries/settings)
• /metadata will contain cache, streams, covers, downloads, backups and logs
• Map any other directories you want to use for your book and podcast collections (ebooks supported as experimental)
Multi-architecture image for amd64, arm64 and arm/v7
version: "3.7"
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
environment:
- AUDIOBOOKSHELF_UID=99
- AUDIOBOOKSHELF_GID=100
ports:
- 13378:80
volumes:
- </path/to/config>:/audiobooks
- </path/to/config>:/podcasts
- </path/to/config>:/config
- </path/to/config>:/metadata
Note: Remember to change the path to your actual directory and remove the <> symbols
Note: Volume mappings should all be separate directories that are not contained in eachother.
Volume mappings
• /config will contain the database (users/books/libraries/settings)
• /metadata will contain cache, streams, covers, downloads, backups and logs
• Map any other directories you want to use for your book and podcast collections (ebooks supported as experimental)
To update your Docker container to the latest version run the following commands
docker stop audiobookshelf
docker rm audiobookshelf
docker image prune -a
docker pull ghcr.io/advplyr/audiobookshelf:latest
# then use initial run command again
Here is an example supported directory structure
Terry Goodkind
<-- AuthorSword of Truth
<-- SeriesVol 1 - 1994 - Wizards First Rule {Sam Tsoutsouvas}
<-- TitleAudio Track 1.mp3
Audio Track 2.mp3
Cover.jpg
Vol 2 - 1995 - Stone of Tears
<-- TitleAudiobook.m4b
Heart of Black Ice - Sister of Darkness
<-- TitleAudio File.m4a
Steven Levy
<-- AuthorHackers - Heroes of the Computer Revolution {Mike Chamberlain}
<-- TitleAudio File.m4a
1945 - Animal Farm
<-- TitleAudiobook.mp3
Animal Farm.m4b
<-- Title** Audio files in the root of the folder will each be treated as books.
In addition to the book title, the title folder can include the publish year, volume number, the subtitle, and the narrator.
Here are a bunch of ways the same book could be named:
Wizards First Rule
Wizards First Rule {Sam Tsoutsouvas}
1994 - Wizards First Rule
Wizards First Rule - A Really Good Subtitle
1994 - Book 1 - Wizards First Rule
1994 - Volume 1. Wizards First Rule {Sam Tsoutsouvas}
Vol 1 - 1994 - Wizards First Rule
1994 - Wizards First Rule - Volume 1
Vol. 1 - 1994 - Wizards First Rule - A Really Good Subtitle {Sam Tsoutsouvas}
(1994) - Wizards First Rule - A Really Good Subtitle
1 - Wizards First Rule
1. Wizards First Rule
Audiobookshelf uses the ID3 metadata tags in audio files to populate data.
Data parsed from the folder structure and filenames takes priority over ID3 tags unless you have enabled the scanner setting "Prefer Audio Metadata".
Metadata on audio files will be mapped as follows (second tag after "/" is a fallback):
ID3 Tag (case-insensitive) | Audiobookshelf Data |
---|---|
artist / album-artist | Author |
album / title | Title |
subtitle | Subtitle |
publisher | Publisher |
year | Publish Year |
composer | Narrator |
description | Description |
genre | Genres * |
series | Series |
series-part | Volume Number |
language / lang | Language |
isbn | ISBN |
asin | ASIN |
* Genre meta tag can include multiple genres separated by "/", "//", or ";". e.g. "Science Fiction/Fiction/Fantasy"
Embedded cover art will be extracted and used only if there are no images in the book folder.
If you have a file named desc.txt in the library item folder it will be used as the description.
If you have a file named reader.txt in the library item folder it will be used as the narrator.
If you have an OPF file with extension .opf in the library item folder it will be parsed.
Details extracted from OPF:
An audiobook contains tracks. Tracks are audio files assigned a track number.
The track number is parsed from the audio filename and from the ID3 tags of the audio file.
Audiobooks that are made up of multiple discs or cd's will be ordered first by disc number then by track number.
Key | ID3 Tags (case-insensitive) | Audio Filename |
---|---|---|
TrackNumber | track, trck, trk | First number after removing title, publish year, series, author, disc number |
DiscNumber | discnumber, disc, disk, tpos | Number following "Disc" or "CD" (example: "Atlas Shrugged CD 01 - 1.mp3") |
The scanner will choose the more accurate track/disc number between the filename and ID3 tag numbers.
Tracks can be manually ordered and enabled/disabled by pressing the "Manage Tracks" button on the audiobook page.