Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
8000 GitHub - kadekp/audorapod: AI-powered podcast generator with fast parallel research and natural conversational
Nothing Special   »   [go: up one dir, main page]

Skip to content

kadekp/audorapod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Audorapod

Audorapod is an AI-powered podcast generation tool that transforms any topic into professional podcast scripts and audio content. Using parallel research via Exa.AI and Azure OpenAI, it creates natural conversational scripts with 3-host formats and optional voice synthesis via ElevenLabs.

Features

  • Fast Research: 8 parallel searches via Exa.AI with AI synthesis
  • Natural Scripts: Conversational podcast scripts with 3-host format
  • Voice Generation: Text-to-speech with ElevenLabs (optional)
  • Flexible Duration: 1-60 minute episodes that scale automatically
  • Easy Customization: All AI prompts in /prompts/ folder for easy editing
  • No Confirmation: Runs directly without prompts

Setup

  1. Install Dependencies

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
  2. Environment Setup

    • Copy .env.example to .env and fill in your API keys:
      cp .env.example .env
    • Required: Exa.AI API key, Azure OpenAI credentials
    • Optional: ElevenLabs API key (for audio generation)

Usage

cd src
python main.py --topic "Your topic here"

Examples

# 5-minute podcast (default)
python main.py --topic "AI safety trends"

# 10-minute podcast
python main.py --topic "Future of remote work" --duration 10

# With audio generation
python main.py --topic "Climate tech" --duration 15 --audio

Options

  • --topic or -t: Podcast topic (required)
  • --duration or -d: Length in minutes (1-60, default: 5)
  • --audio or -a: Generate audio with ElevenLabs TTS
  • --verbose or -v: Detailed logging
  • --cleanup or -c: Remove audio segments after merging

Output Files

The application generates files in the output/ directory:

  • research_<topic>_<timestamp>.json - Research data from Exa.AI
  • script_<topic>_<timestamp>.json - Podcast script in JSON format
  • script_<topic>_<timestamp>.txt - Readable podcast script
  • audio/ - Individual MP3 segments (when using --audio)
  • podcast_full_<timestamp>.mp3 - Complete merged podcast

App Flow

Topic + Duration → Research → Synthesis → Script Generation → Audio (Optional)
       ↓              ↓           ↓             ↓                  ↓
   User Input     Exa.AI API   Key Themes   Natural Dialogue   ElevenLabs TTS
                  (32 sources   Analysis     (Scaled to time)   (3 voices)
                   parallel)

Architecture

audorapod/
├── venv/                    # Virtual environment
├── src/
│   ├── main.py             # CLI application entry point
│   ├── config.py           # Configuration and API keys
│   ├── azure_llm.py        # Azure OpenAI client (increased token limits)
│   ├── researcher.py       # Exa.AI research module
│   ├── research_synthesizer.py # Research synthesis for script focus
│   ├── scriptwriter.py     # Podcast script generator (natural conversations)
│   ├── voice_generator.py  # ElevenLabs TTS integration
│   ├── audio_merger.py     # Audio file merging with FFmpeg
│   └── prompt_loader.py    # Utility for loading external prompts
├── prompts/
│   ├── researcher_prompt.md # Research analysis prompt
│   ├── scriptwriter.md      # Script generation prompt
│   ├── query_generator.md   # Search query generation prompt
│   ├── synthesis.md         # Research synthesis prompt
│   └── system_prompt.md     # System prompt for JSON responses
├── output/                  # Generated podcast files
└── .env                     # API configuration

Example Workflow

  1. User Input: python main.py --topic "AI safety trends" --duration 10
  2. Research Phase: 8 parallel searches via Exa.AI (~32 high-quality sources)
  3. Synthesis Phase: AI extracts key themes and conversation hooks
  4. Script Generation: Natural conversational script with 3-host format
  5. Audio Generation (optional): Text-to-speech conversion using ElevenLabs
  6. Output: Files saved to output/ directory with timestamps

Typical execution time: ~1.5 minutes for complete workflow (80% faster!)

Customization

All AI prompts are in the /prompts/ folder - edit them to customize behavior:

  • query_generator.md - How search queries are created
  • synthesis.md - How research is synthesized into themes
  • scriptwriter.md - How conversations are generated
  • researcher_prompt.md - How research is analyzed
  • system_prompt.md - Basic system instructions

Notes

  • Fast: 8 parallel searches, ~1.5 minute execution time
  • Hosts: Sarah (host), Tony (expert), Brian (trend analyst)
  • Natural: Authentic conversations with interruptions and reactions
  • Scalable: Episodes automatically adjust to requested duration
  • Simple: No confirmation prompts, runs directly

Prerequisites

  • FFmpeg: Required for audio merging (install via Homebrew: brew install ffmpeg)
  • ElevenLabs Account: For voice generation (configure voice IDs in .env)

Troubleshooting

If you encounter import or dependency issues:

  1. Ensure you're using the correct Python environment: source venv/bin/activate
  2. Verify OpenAI version: pip list | grep openai (should be 1.35.0)
  3. Try alternative execution method: PYTHONPATH=src venv/bin/python -m main

About

AI-powered podcast generator with fast parallel research and natural conversational

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0