title: URL to Podcast Generator
emoji: ποΈ
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 3.50.2
app_file: app.py
pinned: false
Gradio Podcast Generator
This project is a Gradio application that generates a podcast episode based on content scraped from a provided URL. It utilizes various components to scrape the content, generate a podcast script, and convert the script into audio format.
Project Structure
gradio-podcast-generator
βββ src
β βββ app.py # Entry point of the Gradio application
β βββ scraper.py # Contains the scraping logic
β βββ podcast_generator.py # Generates the podcast episode
β βββ tts.py # Converts text to speech
βββ requirements.txt # Lists project dependencies
βββ README.md # Project documentation
Setup Instructions
Clone the repository:
git clone https://github.com/yourusername/gradio-podcast-generator.git cd gradio-podcast-generatorInstall the required dependencies:
pip install -r requirements.txt
Flask Configuration
The application uses Flask with Gradio integration. Here's how to set it up and run it:
- Install the requirements:
pip install flask gradio
- Configure the environment:
export FLASK_APP=app.py
export FLASK_ENV=development # For development mode
- Run the application:
python app.py
The server will start on http://0.0.0.0:7860 with the following configuration:
- Host: 0.0.0.0 (accessible from any IP)
- Port: 7860
- Debug mode: Enabled
- Gradio interface: Mounted at root path '/'
Usage
To run the Gradio application, execute the following command in your terminal:
python src/app.py
Once the application is running, you can input a URL into the Gradio interface. The application will scrape the content from the URL, generate a podcast episode, and provide an audio output.
Functionality
- Scraping: The application uses the
scraper.pymodule to extract relevant text from the provided URL. - Podcast Generation: The
podcast_generator.pymodule utilizes theeva-unit-01/eva-llama-3.33-70bmodel to create a podcast script that is no longer than 3 minutes. - Text-to-Speech: The
tts.pymodule converts the generated podcast script into audio using the ElevenLabs TTS API.
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes.
License
This project is licensed under the MIT License. See the LICENSE file for more details.