An automated system that transforms unread newsletters into a weekly podcast. This project processes HTML newsletters, analyzes their content using AI, generates a podcast script, and creates an audio file ready for listening.
- Converts HTML newsletters to structured JSON data
- Uses AI to review and score articles for podcast relevance
- Generates a natural-sounding podcast script
- Creates high-quality audio using ElevenLabs TTS
- Modular workflow allowing review and iteration at each step
- Python 3.8 or higher
- uv (Python package installer and resolver)
- Google API credentials (for YouTube upload)
- OpenRouter.ai API key
- ElevenLabs API key
- Clone the repository:
git clone https://github.com/franloza/inbox-ai-podcast.git
cd inbox-ai-podcast- Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh- Set up the project:
make setup- Set up your environment variables:
cp .env.example .env
# Edit .env with your API keys and configurationThe project uses a Makefile to manage the workflow. Here are the main commands:
make setup: Set up the Python virtual environment using uv and install dependenciesmake phase1: Process HTML newsletters into JSONmake phase2: Review and score articles using AImake phase3: Generate the podcast scriptmake phase4: Create the audio filemake all: Run the complete workflow
To check the results at any stage:
make check-articles: View the processed articlesmake check-reviewed: View the AI-reviewed articlesmake check-script: View the generated podcast script
-
Phase 1: HTML Processing
- Converts HTML newsletters to clean, structured JSON
- Extracts titles, authors, and content
-
Phase 2: AI Review
- Scores articles for podcast relevance
- Generates summaries and key talking points
-
Phase 3: Script Generation
- Creates a natural-sounding podcast script
- Organizes content into a 20-minute format
-
Phase 4: Audio Production
- Converts the script to high-quality audio
- Outputs an MP3 file ready for distribution
Feel free to submit issues and enhancement requests!
This project is licensed under the MIT License - see the LICENSE file for details.