Skip to main content

An intelligent system that automatically generates engaging podcast conversations using LLMs and text-to-speech technology.

Project description

Podcast-LLM: AI-Powered Podcast Generation

Tests codecov GitHub stars GitHub Downloads GitHub issues License: CC BY-NC 4.0

An intelligent system that automatically generates engaging podcast conversations using LLMs and text-to-speech technology.

View Documentation

Features

  • Two modes of operation:
    • Research mode: Automated research and content gathering using Tavily search
    • Context mode: Generate podcasts from provided source materials (URLs and files)
  • Dynamic podcast outline generation
  • Natural conversational script writing with multiple Q&A rounds
  • High-quality text-to-speech synthesis using Google Cloud or ElevenLabs
  • Checkpoint system to save progress and resume generation
  • Configurable voices and audio settings

Examples

Listen to sample podcasts generated using Podcast-LLM:

UFO Crash Retrieval (Elevenlabs voices)

Play Podcast Sample

The Behenian Fixed Stars (Google multispeaker voices)

Play Podcast Sample

Podcast-LLM Overview (Google multispeaker voices)

Play Podcast Sample

Robotic Process Automation (Google voices)

Play Podcast Sample

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/podcast-llm.git
    cd podcast-llm
    
  2. Install Poetry (if not already installed):

    curl -sSL https://install.python-poetry.org | python3 -
    
  3. Install dependencies:

    poetry install
    
  4. Set up environment variables in .env:

    OPENAI_API_KEY=your_openai_key
    GOOGLE_API_KEY=your_google_key 
    ELEVENLABS_API_KEY=your_elevenlabs_key
    TAVILY_API_KEY=your_tavily_key
    ANTHROPIC_API_KEY=your_anthropic_api_key
    

Usage

  1. Generate a podcast about a topic:

    # Research mode (default) - automatically researches the topic
    poetry run podcast-llm "Artificial Intelligence"
    
    # Context mode - uses provided sources
    poetry run podcast-llm "Machine Learning" --mode context --sources paper.pdf https://example.com/article
    
  2. Options:

    # Customize number of Q&A rounds per section
    poetry run podcast-llm "Linux" --qa-rounds 3
    
    # Disable checkpointing
    poetry run podcast-llm "Space Exploration" --checkpoint false
    
    # Generate audio output
    poetry run podcast-llm "Quantum Computing" --audio-output podcast.mp3
    
    # Generate Markdown output
    poetry run podcast-llm "Machine Learning" --text-output podcast.md
    
  3. Customize voices and other settings in config/config.yaml

License

This project is licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

This means you are free to:

  • Share: Copy and redistribute the material in any medium or format
  • Adapt: Remix, transform, and build upon the material

Under the following terms:

  • Attribution: You must give appropriate credit, provide a link to the license, and indicate if changes were made
  • NonCommercial: You may not use the material for commercial purposes
  • No additional restrictions: You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits

For commercial use, please contact evandempsey@gmail.com to obtain a commercial license.

The full license text can be found at: https://creativecommons.org/licenses/by-nc/4.0/legalcode

Acknowledgements

This project was inspired by podcastfy, which provides a framework for generating podcasts using LLMs.

This implementation differs by automating the research and content gathering process, allowing for fully autonomous podcast generation about any topic without requiring manual research or content curation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podcast_llm-0.1.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

podcast_llm-0.1.0-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

File details

Details for the file podcast_llm-0.1.0.tar.gz.

File metadata

  • Download URL: podcast_llm-0.1.0.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for podcast_llm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e06a98aa36602f8be62bd98743b6acbe56a5553a090e996a00dbecfd5c315c49
MD5 85d213993152d13dbf29e5de655eca1a
BLAKE2b-256 d62b404088798488ff1d0f5420ca20a399649bc3f808b9142db3036e5d823c2d

See more details on using hashes here.

File details

Details for the file podcast_llm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: podcast_llm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for podcast_llm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d83cc7e8fa4c4228b10662d875c79d0d765b65343bbada42d22f0130cb82c88b
MD5 0fd6550ef2c8168b01597c998a9caa0e
BLAKE2b-256 c4b03b6ac237ad77eef203c41f60f16c694ffde47ff89c181f5572d391ec5ede

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page