Self-Hosted Audiobooks
Tags: tooling, selfhosted
Published: 2023-03-10 02:11:00

I typically spend around two to five hours per week in a car, driving back and forth to work. While some weeks I work from home more regularly, I still end up in the car a few hours per week.

During these longer commutes, I love listening to audiobooks. However, being the self-hosted advocate that I am, relying on a SaaS provider, like Audible, for my audiobooks runs counter to my beliefs. This post describes my self-hosted setup that lets me access my library anywhere.

## Audiobook Source

I exclusively use [Audible](https://audible.com) to get my audiobook files. While Amazon is generally the devil, Audible has amazing quality and range of audiobooks. Also, they let you download the `.m4b` without any issues.

I’ve got an **Audible Premium Plus** subscription, which gives me a free audiobook every month for $14.95/month. This price is typically cheaper than purchasing audiobooks at retail, so it works out for me. I also don’t typically go through more than one audiobook per month, so the cadence works great.

## Audiobook Downloader

To automate the downloading of the audiobooks from Audible, I use a tool called [OpenAudible](https://openaudible.org). I pay $18.95/year for the license, and it’s tied to the version that you purchase. In other words, if, after a year, a new version is out, I have to pay another $18.95 in order to upgrade. However, I can choose to **not** upgrade and stay on the version I purchased permanently. It’s a pretty standard perpetual license model.

OpenAudible is configured to connect to my Audible account and download all my audiobooks to a well-known network share. I run it on my personal MacBook Air.

## Download Location

Without going into too much detail, I have a [QNAP TS-431](https://www.qnap.com/en/product/ts-431) on the network that houses all my network shares. In this case, I have a network share called `Audiobooks` that I mount on my Air. I then configure OpenAudible to export all downloaded files to that network share.

## Media Server

I run [Plex](http://plex.tv) on a server that is connected to my network as my media server. Adding the library and configuring it is a bit of an adventure in metadata, but generally it’s straightforward.

Before adding any libraries, I added the [Audnexus](https://github.com/djdembeck/Audnexus.bundle) library agent to Plex following the instructions on its GitHub README.

I added an `Audiobooks` library that uses the **Music** type. From there, I add the auto-generated `books` directory that OpenAudible creates in the `Audiobooks` mount point.

Within the configuration of the library, I chose the `Plex Music Scanner` for the scanner and the newly-added `Audnexus Agent` for the agent. The Audnexus GitHub README includes the recommended configuration for the library, as well.

## Listening to the Audiobooks

Now that these audiobooks exist on a self-hosted media server, it’s time to listen to them! While it’s true that I could use the native Plex app on my devices, I’ve found that [Prologue](https://prologue.audio) is an upgrade in every way. In order to get offline playback, you have to spend $5 one time, which is well worth the price.

From here, I just plug my phone into my car and listen to the audiobooks via CarPlay.

## Wrapping It Up

All-in-all, my self-hosted audiobook configuration is pretty straightforward, and it requires almost no maintenance. Every month or so, I open my MacBook Air, fire up OpenAudible, sync my library, and everything _just works_. I typically listen to books after downloading them locally in Prologue. It all works really well!