No description
Eliminate the deprecated `/api/tts` route and its client usage, consolidating TTS generation logic under chapter and segment endpoints. Update client API utilities to remove direct TTS buffer fetching and improve error propagation for chapter generation failures. Extend TTS segment error metadata to include upstream rate limit and retry details, and standardize error typing in shared types. Adjust tests and helpers to reflect the new TTS mocking approach and endpoint structure. This streamlines TTS API surface and enhances error reporting consistency. |
||
|---|---|---|
| .github | ||
| docs-site | ||
| drizzle | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| Dockerfile | ||
| drizzle.config.pg.ts | ||
| drizzle.config.sqlite.ts | ||
| empty-module.ts | ||
| eslint.config.mjs | ||
| LICENSE | ||
| next.config.ts | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
📄🔊 OpenReader
OpenReader is an open source, self-host-friendly text-to-speech document reader built with Next.js for EPUB, PDF, TXT, MD, and DOCX with synchronized read-along playback.
Previously named OpenReader-WebUI.
Get started in the docs.
✨ Highlights
- 🎯 Multi-provider TTS with OpenAI-compatible endpoints and cloud providers (Kokoro-FastAPI, KittenTTS-FastAPI, Orpheus-FastAPI or OpenAI, Replicate, DeepInfra).
- 📖 Read-along playback for PDF/EPUB with sentence-aware narration.
- ⏱️ Word-by-word highlighting via optional
whisper.cpptimestamps. - 🛜 Sync + library import to bring docs across devices and from server-mounted folders.
- 🗂️ Flexible storage with embedded SeaweedFS or external S3-compatible backends.
- 🎧 Audiobook export in
m4b/mp3with resumable chapter processing. - 🐳 Self-host friendly with Docker, optional auth, and automatic startup migrations.
🚀 Start Here
| Goal | Link |
|---|---|
| Run with Docker | Docker Quick Start |
| Deploy on Vercel | Vercel Deployment |
| Develop locally | Local Development |
| Configure auth | Auth |
| Configure SQL database | Database and Migrations |
| Configure object storage | Object / Blob Storage |
| Configure TTS providers | TTS Providers |
| Run Kokoro locally | Kokoro-FastAPI |
| Run KittenTTS locally | KittenTTS-FastAPI |
| Get support or contribute | Support and Contributing |
🧭 Community
- Questions and ideas: GitHub Discussions
- Bug reports: GitHub Issues
- Contributions: open a pull request
📜 License
MIT. See LICENSE.