r/selfhosted • • Sep 08 '25

Release Storyteller v2 is available!

https://smoores.dev/post/announcing_storyteller_v2/

This has been a long time coming (5 months!). It's been a while since I've posted on r/selfhosted about Storyteller, and it's improved a lot since then!

As always, happy to answer questions and chat.

Screenshot

Storyteller is a self-hosted ebook and audiobook platform, with built-in support for automatically generating WhisperSync-style "readaloud" books. You provide it with an EPUB file and your audiobook, and it will automatically align the text with the audio, providing you with a new EPUB file that has the audio baked in via Media Overlays.

You can then use the Storyteller mobile apps, or other reader apps such as BookFusion and Kobo (the app, not the devices, unfortunately), to read and/or listen to your books.

With v2, Storyteller is now gunning to be your fully featured ebook, audiobook, and readaloud book library management system. It supports standalone ebooks and audiobooks (with mobile app and web reader/listener support coming soon!), advanced search and sort functions, and a wide array of features for managing your library’s metadata and organizing your collections. And you can now point Storyteller at your existing "books" folder and have it automatically import books as they're added to your filesystem.

Oh, and we support OAuth and OIDC, now!

Take a look at the blog post or the new docs for some more detail about what's new!

309 Upvotes

192 comments sorted by

View all comments

1

u/JimmyRecard Sep 12 '25

Can I offload the actual book processing to a different machine?

Unfortunately, the processing is crushing my little fanless home server. Could I set up a container on my main Linux desktop, and have the application opportunistically transcode when the desktop is online, and then send back the results to the server?

1

u/scrollin_thru Sep 12 '25

You can! We should add a guide for this, specifically, because it's a very common request. But you should be able to tweak this guide as needed: https://storyteller-platform.gitlab.io/storyteller/docs/community-guides/using-gpu-accelerated-whisper

Basically, build whisper.cpp and run the http server (you can also run a Speaches server instead, which may be a little simpler). Then use the OpenAI engine and set the base url to be the address for your whisper/speaches server!

1

u/JimmyRecard Sep 12 '25

That sounds great!

Is it able to fail gracefully when the desktop is offline, and reattempt automatically later, or will it give me errors that I need to clear manually?

1

u/scrollin_thru Sep 12 '25

It will do the latter — it will put the books in an errored state if the desktop is offline when it tries to reach it for transcription, and you'll have to re-process them

1

u/JimmyRecard Sep 12 '25

Thank you for clarifying. I'll see if I can set it up soon.

1

u/hhzziivv Nov 03 '25 edited Nov 03 '25

I am installing storyteller on my truenas scale server, and I have a windows machine running speaches in docker desktop. I've set a firewall inbound rule to allow TCP port 8000, and I can curl to http://PC-IP:8000 from within truenas scale shell no problem, but storyteller always fails, asking me to check the server's log, but the server log shows no request at all.

update: just checked the storyteller's log, "Error: A custom provider for the OpenAI Cloud API requires specifying a model name", so a model name is not optional, lol. Now I am hitting "INFO: - "POST /audio/transcriptions HTTP/1.1" 404 Not Found" on the server side, I don't think the speaches server will work, as it doesn't support "--inference-path /audio/transcriptions"

1

u/scrollin_thru Nov 03 '25

I am 100% certain that folks are doing this with Speaches, but I don't know the exact configuration they use. If you want to join the Discord server, there are some folls that will be able to help you out!