Open Source ยท Android ยท Offline

Audio Mark

A bridge between your audiobook player and your ebook reader.

" Read where you want. Listen when you want.
  Jump between them instantly "

Pick up a paragraph in your ebook reader and instantly know exactly where to resume in your audiobook player โ€” down to the second. No scrubbing. No guessing. No compromise.

Why Audio Mark Exists

๐Ÿ“–

Great tools already exist

Storyteller does an excellent job aligning EPUB text with audio narration. Dedicated audiobook players offer powerful playback controls. Ebook readers have deep reading and annotation tools.

๐Ÿ”€

But switching is painful

When you move between your ebook reader and audiobook player, you lose your place. You end up scrubbing through audio trying to find where you left off in the text. It's tedious and breaks the flow.

๐ŸŒ‰

Audio Mark is the bridge

Storyteller is actively evolving and cannot fully replace both a dedicated player and a dedicated reader. Audio Mark doesn't replace any of these tools โ€” it connects them, letting each do what it does best.

How It Works

01

Generate the database

Run AudioMarkGenerator on your EPUB3 file. It parses the SMIL timing data and builds a lightweight search index saved as a .db file.

02

Import into Audio Mark

Transfer the .db file to your Android device and import it into the Audio Mark app. Repeat for each book in your library.

03

Select text โ†’ get position

Highlight any passage in your ebook reader, share it to Audio Mark, and instantly receive the chapter name, audio file, and exact timestamp to resume in your player.

See It in Action

You are reading a book in your ebook reader. You come across this paragraph:

"One of the other Folk got too close, and Malidra hissed at her."

You want to continue listening from that exact moment in your audiobook player. Instead of manually scrubbing through hours of audio:

1 Select the paragraph in your ebook reader.
2 Tap Audio Mark from the share menu.
3 Choose the book.
Audio Mark instantly shows:
Chapter The Gathering Storm
Audio file ch12.mp3
Timestamp 01:23:44

Features

๐Ÿ”
Exact substring search

Matches your selected text precisely against the indexed EPUB content.

๐Ÿ“‘
Chapter title extraction

Returns the human-readable chapter name alongside the position data.

โฑ๏ธ
Timestamp resolution (HH:MM:SS)

Precise to the second, derived from SMIL timing data in EPUB3 files.

๐Ÿ“š
Multiple books support

Import as many .db databases as you need โ€” one per book.

โœˆ๏ธ
Fully offline

No internet connection required. Everything runs locally on your device.

๐Ÿ”’
No tracking

Zero analytics, zero telemetry, zero network requests. Your reading is your business.

๐Ÿ—‚๏ธ
SMIL-based EPUB3 support

Works with properly structured EPUB3 audiobooks using Media Overlays.

Getting Started

Android App

  1. Download the APK from GitHub Releases.
  2. Install on your Android device (enable "Install from unknown sources" if prompted).
  3. Import a .db file generated by AudioMarkGenerator.
  4. In your ebook reader, select any passage and share it to Audio Mark.
Download APK
โš™๏ธ

AudioMarkGenerator

  1. Clone the AudioMarkGenerator repo
  2. Create a virtual environment: python -m venv ./.virt
  3. Activate and install deps: pip install -r requirements.txt
  4. Run: python build_index.py your_book.epub
  5. Transfer the generated .db file to your Android device.
View on GitHub