NotebookLM, but you own the stack and the voices
Twocast turns documents, links, or topics into bilingual two-person podcasts using your choice of TTS providers.

What it does Twocast is a self-hostable AI podcast generator that creates 3–5 minute two-person conversations from a topic, URL, document, or list page. It outputs audio, an outline, and the full script. The project is built in TypeScript/Next.js and stores data in Postgres.
The interesting bit Instead of locking you into one provider, it routes TTS through Fish Audio, Minimax, or Google Gemini (the README notes Gemini is “more expensive”). The LLM layer is similarly decoupled: chat goes through OpenRouter, search through x.ai. That’s more API keys to manage, but it means you can swap voices or models without rebuilding the pipeline.
Key highlights
- Supports doc, PDF, and TXT ingestion via a Textract sidecar
- Multi-language output with bilingual episodes as a stated goal
- Docker Compose path exists, though the README warns to “prioritize” local setup if issues arise
- Audio post-processing handled by an ffmpeg-api container
- Sample episodes include Hacker News and V2EX hot articles in English and Chinese
Caveats
- The “one-click” Docker start is explicitly flagged as less reliable than manual setup
- No pricing or rate-limit guidance beyond the vague “more expensive” note on Gemini
- Voice cloning is listed in repo topics but not detailed in the README; actual cloning workflow is unclear
Verdict Worth a look if you want NotebookLM-style podcasts without the Google account lock-in and don’t mind wiring up 4–6 API keys. Skip it if you need a polished SaaS experience or deep voice-cloning controls today.