Tobias Reithmeier

Blog

CLAUDIO, Your Audio Player: Why I Built It

My music lived on the NAS, the audiobooks on Audiobookshelf, some of it on Jellyfin and in iCloud Drive. Four sources, four apps, and none of them left my data alone. At some point I stopped looking for the right app and started building it.

What set it off

My audio setup grew over the years, the way self-hosted things do. First the NAS with the music collection, then Audiobookshelf for the audiobooks, a Jellyfin in between, and a few albums sat in iCloud Drive for historical reasons. Every source came with its own app, and every app had its own controls, its own state and its own quirks. The official clients each tied me to one backend, and VLC played everything but came without a library, chapters or gapless playback.

What actually bothered me was something else, though. These were files I own, on servers I run myself, and still some of these apps wanted an account, shipped analytics SDKs or phoned telemetry home. The mismatch got more absurd every year: the more I self-hosted, the more data-hungry apps I needed to use any of it.

I wanted a privacy-focused player that plays everything I own. One app instead of five. That's how CLAUDIO started.

CLAUDIO home view on iPhone: an audiobook at the top with cover art, progress bar, time left and a continue listening button, followed by the sections continue listening, for you and tracks to try, with tabs for home, audiobooks, music, podcasts and more along the bottom

What I deliberately didn't build

Looking back, the most important decisions were about what to leave out.

No catalog. CLAUDIO doesn't sell music and doesn't run a server of its own. There is no service in the middle that anything would have to pass through, because that service simply doesn't exist. The app connects only to the sources you add yourself. Home does make recommendations these days, but only from your own collection, and the taste profile behind them is built on the device. You can view it and reset it.

No account. There is nothing to sign up for. Library, playback history and podcast subscriptions live on the device. Something reaches a server only where you added one yourself. Even the favorites sync with Navidrome, Jellyfin and Audiobookshelf, which runs both ways with Ultra or Pro+, uses your login on your own server rather than a CLAUDIO account.

No analytics. The easiest way to collect no data is to not build the tools for it in the first place. There is no analytics SDK in CLAUDIO, no telemetry, no crash reporter quietly logging things "anonymized". So the App Store label "Data Not Collected" simply describes what the app does.

What was harder than expected

The hardest part was the playback position. With audiobooks and podcasts, one thing matters more than any audio detail: resuming exactly where you left off. That sounds like one line of code. It isn't. The chapter display, the sleep timer, scrubbing, progress saving and the in-car display all need the same position. As soon as several places in the code keep their own idea of it, they drift apart and resuming lands a few seconds off.

Then there are the rough interruptions: say, the car ignition turning off before the system even tells the app. What CLAUDIO ended up with is a single source of truth for the position, backed by a fixed measurement chain. How that works in detail is covered in the post about CLAUDIO's architecture.

Audiobooks, podcasts, music

All three have their own tab and their own tools in CLAUDIO:

  • Audiobooks: Chapters from M4B and tagged MP3, a sleep timer to the end of the chapter or book, and playback that resumes a few seconds earlier after a pause.
  • Podcasts: Subscribe by URL or Apple Podcasts search, download episodes, skip intros and outros, import and export OPML.
  • Music: Album Wall and LP Mode, 10-band EQ, gapless playback, crossfade and synced lyrics.

Where it goes from here

CLAUDIO has stayed a solo project: no company, no investors, and I read the feedback myself. I still listen to music, audiobooks and podcasts with it every day, and every detail that annoys me goes on the list. The app is now at version 15.0 and runs on iPhone, iPad and Mac, with its own two-column layout on iPad and Mac.

All features, sources and prices are on the product page. This post is meant to stay with the story.


Full disclosure: CLAUDIO is my own app. This text is a look behind the scenes and not a neutral review. Features and purchase terms are on the product page.