This commit restructures the audiobook generation and serving layer to rely exclusively on S3-compatible blob storage, removing the dependency on local filesystem paths. - Bundle `ffmpeg` and `ffprobe` binaries via npm to ensure portability across environments. - Update API routes to stream audio directly from blob storage instead of local disk. - Remove legacy migration endpoints and filesystem-based indexing logic. - Add startup scripts to facilitate the transition from local to remote storage. BREAKING CHANGE: Audiobook functionality is now strictly dependent on S3 configuration. The previous filesystem-based storage method has been removed.
1.6 KiB
1.6 KiB
| title |
|---|
| TTS Providers |
OpenReader WebUI supports OpenAI-compatible TTS providers through a common API shape.
Supported provider patterns
- OpenAI API
- DeepInfra
- Kokoro-FastAPI
- Orpheus-FastAPI
- Custom OpenAI-compatible endpoints
Provider dropdown behavior
In Settings, the provider dropdown includes:
OpenAIDeepinfraCustom OpenAI-Like(for Kokoro, Orpheus, and other compatible endpoints)
API_BASE guidance:
- For
OpenAIandDeepinfra, OpenReader auto-fills the default endpoint. - For
Custom OpenAI-Like, setAPI_BASEto your server endpoint. - In practice, you usually only set
API_BASEwhen using a provider/endpoint that is not directly covered by the built-in dropdown defaults.
Custom provider compatibility
For custom providers, OpenReader expects these endpoints:
GET /v1/audio/voicesPOST /v1/audio/speech
If your provider exposes this interface, it can be used as an OpenAI-compatible TTS backend.
Setup flow
- Select your provider in the OpenReader Settings modal.
- If using
Custom OpenAI-Like(or overriding a default), setAPI_BASE. - Set
API_KEYif required by your provider. - Choose model and voice.
For environment variables, see Environment Variables. For TTS quota behavior, see TTS Rate Limiting. For auth behavior, see Auth. For provider-specific integration guides, see Kokoro-FastAPI, Orpheus-FastAPI, Deepinfra, OpenAI, and Custom OpenAI.