An Open Source alternative to NotebookLM's podcast feature: Transforming Multimodal Content into Captivating Multilingual Audio Conversations with GenAI
Project description
Podcastfy.ai 🎙️🤖
An Open Source API alternative to NotebookLM's podcast feature: Transforming Multimodal Content into Captivating Multilingual Audio Conversations with GenAI
https://github.com/user-attachments/assets/f1559e70-9cf9-4576-b48b-87e7dad1dd0b
Paper | Python Package | CLI | REST API | Web App | Feedback
Podcastfy is an open-source Python package that transforms multi-modal content (text, images) into engaging, multi-lingual audio conversations using GenAI. Input content includes websites, PDFs, YouTube videos, as well as images.
Unlike UI-based tools focused primarily on note-taking or research synthesis (e.g. NotebookLM ❤️), Podcastfy focuses on the programmatic and bespoke generation of engaging, conversational transcripts and audio from a multitude of multi-modal sources, enabling customization and scale.
Audio Examples 🔊
This sample collection is also available at audio.com.
Images
Image Set | Description | Audio |
---|---|---|
Senecio, 1922 (Paul Klee) and Connection of Civilizations (2017) by Gheorghe Virtosu | 🔊 | |
The Great Wave off Kanagawa, 1831 (Hokusai) and Takiyasha the Witch and the Skeleton Spectre, c. 1844 (Kuniyoshi) | 🔊 | |
Pop culture icon Taylor Swift and Mona Lisa, 1503 (Leonardo da Vinci) | 🔊 |
Text
Content Type | Description | Audio | Source |
---|---|---|---|
Youtube Video | YCombinator on LLMs | Audio | YouTube |
Book: Networks, Crowds, and Markets | Audio | book pdf | |
Research Paper | Climate Change in France | Audio | |
Website | My Personal Website | Audio | Website |
Website + YouTube | My Personal Website + YouTube Video on AI | Audio | Website, YouTube |
Multi-Lingual Text
Language | Content Type | Description | Audio | Source |
---|---|---|---|---|
French | Website | Agroclimate research information | Audio | Website |
Portuguese-BR | News Article | Election polls in São Paulo | Audio | Website |
Features ✨
- Generate conversational content from multiple sources and formats (images, websites, YouTube, and PDFs).
- Customize transcript and audio generation (e.g., style, language, structure, length).
- Generate transcripts using 100+ LLM models (OpenAI, Anthropic, Google etc).
- Leverage local LLMs for transcript generation for increased privacy and control.
- Integrate with advanced text-to-speech models (OpenAI, Google, ElevenLabs, and Microsoft Edge).
- Provide multi-language support for global content creation.
- Integrate seamlessly with CLI and Python packages for automated workflows.
Updates 🚀
v0.3.0+ release
- Integrate with 100+ LLM models (OpenAI, Anthropic, Google etc) for transcript generation
- Integrate with Google's Multispeaker TTS model for high-quality audio generation
Quickstart 💻
Prerequisites
- Python 3.11 or higher
$ pip install ffmpeg
(for audio processing)
Setup
-
Install from PyPI
$ pip install podcastfy
-
Set up your API keys
Python
from podcastfy.client import generate_podcast
audio_file = generate_podcast(urls=["<url1>", "<url2>"])
CLI
python -m podcastfy.client --url <url1> --url <url2>
Usage 💻
Experience Podcastfy with our HuggingFace 🤗 Spaces app. (Note: This UI app is less extensively tested than the Python package.)
Customization 🔧
Podcastfy offers a range of customization options to tailor your AI-generated podcasts:
- Customize podcast conversation (e.g. format, style, voices)
- Choose to run Local LLMs (156+ HuggingFace models)
- Set System Settings (e.g. output directory settings)
Built with Podcastfy 🛠️
License
This software is licensed under Apache 2.0. Here are a few instructions if you would like to use podcastfy in your software.
Contributing 🤝
We welcome contributions! See Guidelines for more details.
Example Use Cases 🎧🎶
-
Content Creators can use
Podcastfy
to convert blog posts, articles, or multimedia content into podcast-style audio, enabling them to reach broader audiences. By transforming content into an audio format, creators can cater to users who prefer listening over reading. -
Educators can transform lecture notes, presentations, and visual materials into audio conversations, making educational content more accessible to students with different learning preferences. This is particularly beneficial for students with visual impairments or those who have difficulty processing written information.
-
Researchers can convert research papers, visual data, and technical content into conversational audio. This makes it easier for a wider audience, including those with disabilities, to consume and understand complex scientific information. Researchers can also create audio summaries of their work to enhance accessibility.
-
Accessibility Advocates can use
Podcastfy
to promote digital accessibility by providing a tool that converts multimodal content into auditory formats. This helps individuals with visual impairments, dyslexia, or other disabilities that make it challenging to consume written or visual content.
Contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file podcastfy-0.3.1.tar.gz
.
File metadata
- Download URL: podcastfy-0.3.1.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.10 Linux/6.8.0-48-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54906ada178244e0959eaab8556341c9de22f38e7afde2896289ef99ef82f5ec |
|
MD5 | f238e320df9511d9b51aab5ca45c6f70 |
|
BLAKE2b-256 | 870bbf518a4b6226b628b4c1c108710886aa6781bef8b45492be710bfd0c5398 |
File details
Details for the file podcastfy-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: podcastfy-0.3.1-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.10 Linux/6.8.0-48-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d70b7d4827f2f6a0590ccdf8ccf818a7be9abf459697f46922c44a3fe33023e |
|
MD5 | fbcd68667b2a011f71bd01e17ae54535 |
|
BLAKE2b-256 | d26656795e26f8e2d85e6037a19abd1bb999b8caf6e18af119dd2ac9876fd6a0 |