← Projects

Audiobooks

A native macOS audiobook player that syncs MP3, M4A and M4B audiobooks with their EPUB on-device, so I can switch between my Kindle and the narration without losing my place. A Whispersync-style handoff without Audible.

What it is

Audiobooks is a small native Mac app for listening to audiobooks straight from a folder on disk, with one feature I could not find anywhere else: it knows where the narration is in the ebook. That makes it easy to put the Kindle down mid-chapter, keep going in my headphones, and later find the exact sentence again on the Kindle.

Why I built it

I read on a Kindle and listen while doing other things. My audio and my ebooks do not live in the same ecosystem, so every switch meant hunting for my place by hand. I wanted a player that treated the ebook as part of the book.

How it works

The app transcribes the audiobook on-device with Apple's SpeechAnalyzer, then aligns the transcript with the EPUB using four-word sequences that occur only once in the book. It keeps the longest consistent chain of matches, which produces a dense map between seconds of audio and words of text. From there it can show the ebook's real chapters, follow the narrator in a reader view, and generate a unique search phrase to jump to the same spot on a Kindle. A six-hour audiobook syncs in under three minutes with more than 43,000 anchors, and the app picks the matching EPUB from the library by itself. The build log walks through the code.

Key features

  • Plays MP3, M4A and M4B files straight from a library folder, with embedded chapters and per-book progress
  • On-device ebook sync: no accounts, no cloud, transcript cached per book
  • Listen and Read modes that share one bookmark
  • Kindle handoff: a unique search phrase and an estimated Kindle percentage, plus "find my Kindle page" search back into the audio
  • Collapsed cover rail, focus mode, media keys, AirPods and keyboard shortcuts
  • A scripted --demo mode used to record the product video automatically

Status

It is a personal app for now and is not distributed yet. The build log covers the sync, the redesign, and how the demo video was produced with Claude Code.