Overview
Audiobook Player is a desktop and iOS audiobook app built with Tauri 2. It connects to Google Drive, detects audiobook folders, downloads chapters for offline listening, and plays them back with the controls you’d expect from a dedicated reader: speed control, skip and seek, bookmarks, sleep timer, and a “continue listening” shelf that picks up exactly where you left off.
I built it because I wanted to listen to my own audiobook collection without uploading it to a third-party service. The files live in a Drive folder I already pay for; this app is the playback layer on top.

Features
Google Drive integration
- OAuth 2.0 with PKCE, no client secret stored on device
- Browse Drive folders, mark favorites for quick access
- Auto-detect audiobooks from folder structure, including chapter ordering
- Pull metadata from MP3 ID3 tags or MP4 atoms when available
- Cover art from a Drive image, the audio file itself, or picked manually
Library management
- Local SQLite database for books, chapters, bookmarks, and progress
- Sort by title, author, recently added, or recently played
- Search across the library
- Edit title, author, and narrator after import
- A book wizard walks through detection, metadata, and cover selection on add
Playback
- Symphonia decoding for MP3, AAC, and ISO MP4 / M4B containers
- Variable speed playback with a curated set of speed presets
- Skip forward / back, fine seek, and gapless chapter transitions
- Bookmarks with timestamps and notes
- Sleep timer
- Native iOS audio session and lock-screen controls via a Swift bridge
Offline downloads
- Per-chapter downloads with progress events streamed to the UI
- Configurable cache size with eviction
- Clear individual chapters, whole books, or reset progress without re-downloading
Cross-platform
The same React UI runs on every target. The Rust core handles Drive, the database, the cache, and audio decoding; on iOS, a Swift library plugs into the system audio APIs so playback continues in the background and on the lock screen.
Technology stack
- Tauri 2 with Rust on the backend, React 19 + TypeScript on the frontend
- Vite, Tailwind CSS v4, shadcn/ui, Radix primitives, lucide-react icons
rusqlite(bundled SQLite) for storage,symphoniafor decoding,rodiofor desktop outputoauth2crate with PKCE,tauri-plugin-deep-linkandtauri-plugin-web-authfor the Drive auth flow- Swift bridge via
swift-rsfor iOS-specific audio session handling - Targets macOS, Windows, Linux, and iOS 15+