AI-powered podcast generation that sounds human, works like software.
Totally not a versificator. Honest.
Episodic is an automated podcast generation platform that transforms your content into professional, scripted audio shows. Using AI orchestration with human oversight, it takes heterogeneous source documents and produces broadcast-quality podcasts with proper tone, compliance checks, and audio mastering.
Think of it as your podcast production team, but with:
- Intelligent content generation using LLMs with multi-layer quality assurance
- Human-in-the-loop workflows for editorial approval and brand compliance
- Professional audio synthesis with TTS, background music, and loudness normalization
- Hexagonal architecture for clean boundaries and testable components
- Cloud-native infrastructure built on Kubernetes with GitOps deployment
Unlike certain dystopian content machines from Orwell's imagination, Episodic emphasizes auditability, compliance, brand guidelines, and human oversight at every stage. It's a tool for creators, not a replacement.
This project is in active early development. We're currently building the platform foundations (Phase 1 of 6).
📋 See docs/roadmap.md for detailed development status and
planned features.
- Multi-source document ingestion with conflict resolution
- Canonical TEI (Text Encoding Initiative) content representation using tei-rapporteur, our TEI P5 serialization library for Rust and Python
- Automated provenance tracking and audit trails
- Series profiles and episode templates
- LLM-based script generation with retry and guardrails
- Multi-layer quality assurance (factuality, tone, style)
- Brand guideline compliance checking
- Structured output planning with model tiering for cost control
- LangGraph suspend-and-resume workflows
- Text-to-speech with configurable voice personas
- Background music and sound effect integration
- Professional mixing with ducking and transitions
- Loudness normalization to broadcast standards (-16 LUFS)
- Chapter markers and metadata embedding
- Cost accounting with token usage metering
- Budget enforcement per user/organization
- Comprehensive observability (Prometheus, Loki, Tempo)
- GitOps-driven deployments with FluxCD
- Editorial approval workflows with SLA tracking
- Language: Python 3.14+ (with optional Rust extensions)
- Web Framework: Falcon 4.2.x on Granian (Rust-based ASGI server)
- Task Queue: Celery with RabbitMQ
- Orchestration: LangGraph for agentic workflows
- Database: PostgreSQL (CloudNativePG)
- Cache: Valkey (Redis-compatible in-memory data store)
- Infrastructure: Kubernetes (DigitalOcean DOKS), OpenTofu/Terraform
- Deployment: FluxCD GitOps
- Testing: pytest with BDD (pytest-bdd)
Episodic is built using hexagonal architecture (ports and adapters) to maintain clean boundaries between domain logic and infrastructure concerns. This ensures testability, flexibility, and long-term maintainability.
- Python 3.14+
- uv (fast Python package and project manager)
- Make
- Docker (for local development)
# Install dependencies
uv sync
# Run tests
make test
# Run linters and type checks
make lint
make typecheck📖 See docs/users-guide.md for the knick-knacks.
User guide coming soon as features are implemented!
Note: The Python package does not expose a stable public API yet. The
placeholder hello helper has been removed, so treat the module surface as
internal until a supported API is documented.
- Roadmap — Development phases and current status
- System Design — Architecture and component overview
- Infrastructure Design — Kubernetes, GitOps, and observability
- Users Guide — Usage instructions (coming soon)
This project follows strict code quality standards:
- Linting: Ruff with comprehensive rule sets
- Type Checking: Pyright in strict mode
- Testing: pytest with BDD scenarios
- Complexity: Cyclomatic complexity limits enforced
- Architecture: Hexagonal boundary enforcement via lint rules
See AGENTS.md for contributor guidelines and commit gating
requirements.
Licensed under the ISC Licence.
Developed by df12 Productions 🌐 https://df12.studio
Remember: With great automation comes great responsibility. Use this power wisely, and keep a human in the loop. 🤖✨