AI-Powered Internet Culture Podcasts
Transforming Reddit's most intriguing discussions into engaging audio content
Overview • Features • Architecture • Getting Started • Contributing
🌟 Overview
Ever felt overwhelmed trying to keep up with internet culture? We transform r/OutOfTheLoop's most engaging discussions into natural, conversational podcasts – making it easy to stay informed while on the go.
✨ Key Features
- 🎯 Smart Content Curation - Automatically selects the most meaningful discussions
- 🎭 Multi-Persona Dialogue - Natural conversations between different personas
- 🔍 Deep Context Integration - Synthesizes information from posts, comments, and related links
- 🎙️ Professional Audio - Converts discussions into podcast-ready content
- 🚀 Weekly Updates - Fresh episodes covering the latest internet phenomena
🛠️ Architecture
The project uses LangGraph for orchestrating the podcast generation workflow:
Core Components
1. Content Collection & Processing
- RedditPostFetcher: Retrieves trending discussions from r/OutOfTheLoop
- RedditPostProcessor: Processes posts, comments, and related URLs
2. Script Planning & Generation
- ScriptPlanner: Evaluates and structures content using 4 core patterns:
- Mystery Unfolding: Reveals information progressively
- Debate/Controversy: Explores multiple perspectives
- Cultural Phenomenon: Analyzes trending topics
- Complex Situation: Breaks down intricate issues
- Multi-Persona Design: Orchestrates natural dialogue flow
3. Dialogue Generation
- DialogueGenerator: Creates dynamic conversations
- Context Integration: Weaves in URLs, comments, and background
- Parallel Processing: Generates reddit post specific dialogues concurrently
4. Script Enhancement
- ScriptEnhancer: Improves flow and reduces redundancy
- Format Standardization: Ensures consistent dialogue structure
- Quality Control: Maintains speaker authenticity
5. Podcast Generation
- Audio Synthesis: Converts enhanced scripts to natural speech
- Voice Differentiation: Distinct voices for Host, Learner, and Expert
- Quality Assurance: Ensures proper pacing and pronunciation
🚀 Getting Started
Installation
- Clone the repository
git clone https://github.com/kaushikb11/keepingupwiththeinternets.git
cd keepingupwiththeinternets- Create and activate a virtual environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Configure environment variables
cp .env.example .env # Edit .env with your API credentials: # - REDDIT_CLIENT_ID # - REDDIT_CLIENT_SECRET # - ELEVEN_LABS_API_KEY
Basic Usage
Generate a podcast from r/OutOfTheLoop's top posts:
Advanced Usage
For automated weekly podcast generation, you can deploy the agent using Modal:
- Install Modal
- Set up Modal authentication
- Add secrets to Modal either through the CLI or the web interface
python3 -m modal secret create keepingupwiththeinternets-secrets \ REDDIT_CLIENT_ID=<your-value> \ REDDIT_CLIENT_SECRET=<your-value> \ REDDIT_USER_AGENT=<your-value> \ .....
- Deploy the scheduled job
python3 -m modal deploy modal_app.py
The deployment will:
- Run automatically every week
- Store podcasts in Modal's persistent storage
- Handle all dependencies and environment setup
You can monitor your deployments in the Modal dashboard.
🤝 Contributing
Contributions are welcome! Feel free to submit a pull request or open an issue.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🙏 Acknowledgments
- paper_to_podcast for components inspiration
- Reddit's r/OutOfTheLoop community
- ElevenLabs for voice synthesis
- Firecrawl for web content extraction
- LangGraph for workflow orchestration

