build | ||
client | ||
images | ||
server | ||
static | ||
.dockerignore | ||
.gitignore | ||
docker-template.xml | ||
Dockerfile | ||
index.js | ||
package-lock.json | ||
package.json | ||
prod.js | ||
readme.md |
AudioBookshelf
AudioBookshelf is a self-hosted audiobook server for managing and playing your audiobooks.
Android app is in beta, try it out on the Google Play Store
Free & open source Android/iOS app is in development
Directory Structure
Author, Series, Volume Number, Title and Publish Year can all be parsed from your folder structure.
Note: Files in the root directory /audiobooks
will be ignored, all audiobooks should be in a directory
1 Folder: /Title/...
2 Folders: /Author/Title/...
3 Folders: /Author/Series/Title/...
Parsing publish year
/1984 - Hackers/...
Will save the publish year as 1984
and the title as Hackers
Parsing volume number (only for series)
/Book 3 - Hackers/...
Will save the volume number as 3
and the title as Hackers
Book
Volume
Vol
Vol.
are all supported case insensitive
These combinations will also work:
/Hackers - Vol. 3/...
/1984 - Volume 3 - Hackers/...
/1984 - Hackers Book 3/...
Parsing subtitles (optional in settings)
Title Folder: /Hackers - Heroes of the Computer Revolution/...
Will save the title as Hackers
and the subtitle as Heroes of the Computer Revolution
Full example
/Steven Levy/The Hacker Series/1984 - Hackers - Heroes of the Computer Revolution - Vol. 1/...
Becomes:
Key | Value |
---|---|
Author | Steven Levy |
Series | The Hacker Series |
Publish Year | 1984 |
Title | Hackers |
Subtitle | Heroes of the Computer Revolution |
Volume Number | 1 |
Features coming soon
- Support different views to see more details of each audiobook
- iOS App (Android is in beta here)
Installation
Docker Install
Available in Unraid Community Apps
docker pull advplyr/audiobookshelf
docker run -d \
-p 1337:80 \
-v </path/to/audiobooks>:/audiobooks \
-v </path/to/config>:/config \
-v </path/to/metadata>:/metadata \
--name audiobookshelf \
--rm advplyr/audiobookshelf
Linux (amd64) Install
A simple installer is added to setup the initial config. If you already have audiobooks, you can enter the path to your audiobooks during the install. The installer will create a user and group named audiobookshelf
.
Ubuntu
A PPA is setup on github here.
curl -s --compressed "https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg" | sudo apt-key add -
sudo curl -s --compressed -o /etc/apt/sources.list.d/audiobookshelf.list "https://advplyr.github.io/audiobookshelf-ppa/audiobookshelf.list"
sudo apt update
sudo apt install audiobookshelf
or use a single command
curl -s --compressed "https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg" | sudo apt-key add - && sudo curl -s --compressed -o /etc/apt/sources.list.d/audiobookshelf.list "https://advplyr.github.io/audiobookshelf-ppa/audiobookshelf.list" && sudo apt update && sudo apt install audiobookshelf
Debian package
All other linux distros can just wget
the deb
file.
wget https://advplyr.github.io/audiobookshelf-ppa/audiobookshelf_1.2.1_amd64.deb
sudo apt install ./audiobookshelf_1.2.1_amd64.deb
File locations
Project directory: /usr/share/audiobookshelf/
Config file: /etc/default/audiobookshelf
System Service: /lib/systemd/system/audiobookshelf.service
Ffmpeg static build: /usr/lib/audiobookshelf-ffmpeg/
Run from source
Note: you will need npm
, node12
, and ffmpeg
to run this project locally
git clone https://github.com/advplyr/audiobookshelf.git
cd audiobookshelf
# All paths default to root directory. Config path is the database.
# Directories will be created if they don't exist
# Paths are relative to the root directory, so "../Audiobooks" would be a valid path
npm run prod -- -p [PORT] --audiobooks [AUDIOBOOKS_PATH] --config [CONFIG_PATH] --metadata [METADATA_PATH]
Contributing
Feel free to help out