Trying out Audiobookshelf

When I first saw Audiobookshelf, an app for hosting your audiobooks and podcasts, I thought it was a neat idea, but I don't really have any need for it.

And it would have ended there, were it not for a discussion with a friend from my book club. She heard me talking about "self-hosted" software plenty of times; not only because the app we use for our book club is hosted on my server. Then I realized - not being a techie, she doesn't really fully get what that actually means. And rather than just explaining, I thought - hey, you make up a domain name, and we'll get this audiobook thing up and running as a demonstration.

Picture taken from the project's Github page.

Long story short, besides being instructional, it also made me realize that hey, this app is kinda cool.

I do listen to audiobooks, and I make a point of not buying any with restrictive DRMs that would not let me download mp3s. So there's plenty I could put in there. But I'm not eager to move away from the great Smart AudioBook Player (SABP) which does what I want, exactly the way I want it; and of course, it runs on local MP3s on my phone. So there is no reason to have something similar, except with fewer features, and with streaming, meaning the same book now also wastes my mobile data.

But I might yet reconsider. First off, Audiobookshelf has an Android app. It also has the option to download the book upfront, so no streaming is needed. But it's broken at the moment, which is a deal-breaker. But I assume it'll get fixed eventually.

Secondly - bookmarks are synced. Usually when listening to audiobooks, I make bookmarks in them when I hear something I want to jot down. More often than not, I only get around to doing that much later; I sit at my computer, go over the bookmarks on my phone again, write things down. If I could just listen to any bookmark any time I open the app's web page on my PC, that might remove a significant amount of friction.

Realistically, those are the most important to me. But there are other benefits as well: position is synced, so I can start listening on one device and continue on another. This seems to work pretty well, even at times when the app is showing "Error: progress is not being synced" for some reason.
There also is beta support for e-books, which is great. It has a long way to go, but just opening a book and reading it is definitely possible.

Some disadvantages: The player itself is nowhere near as complex and pleasant as SABP's, but it's good enough. And it's not clear to me whether the organization of libraries will be any good; they seem to be completely separated, with search only searching in the current one. And I'm not sure if there's a practical way of keeping an audiobook and its corresponding ebook in the same place in the UI.

A trial run

Despite all of the drawbacks, I wanted to try it out 'for real.' Took the audiobook I wanted to listen to next and uploaded it. (Of course it then failed, I reconfigured nginx to allow for bigger payloads, and actually uploaded it. 😂)

The experience was mostly good. There were lots of scary warnings along the lines of progress not being synced, but it worked and even seemed to sync. My worries that I'd lose my position in the book due to some sync error were unfounded.

But since the offline saving doesn't work, I had to stream the whole time, which consumed data and caused more than a few hiccups. Buffering doesn't seem to be extensive enough, so when I walked somewhere with bad coverage, the book stopped, or couldn't start.

Once I had a server outage - it was caused by something unrelated, but it took everything down. That made it impossible to continue listening until I fixed the issue.

In the end, I have listened to about 75% of the book via Audiobookshelf. I had a trip planned for the next day and foreseeing connectivity issues on the road, I copied the remainder of the book over to SABP and finished using that.

But I still consider this mostly a success. The most pressing issues would have been avoided if the 'save this book to phone' functionality worked. I will definitely be giving it another go after some time.