Podcastfy 如何把网页、图片和 PDF 变成双人对话播客:新手完整实战指南
【免费下载链接】podcastfyAn Open Source Python alternative to NotebookLM's podcast feature: Transforming Multimodal Content into Captivating Multilingual Audio Conversations with GenAI项目地址: https://gitcode.com/GitHub_Trending/po/podcastfy
Podcastfy 是一个开源 Python 播客生成工具,能把网页、PDF、图片和 YouTube 视频变成两位 AI 主持人对谈的多语言音频,是 NotebookLM 播客功能的开源平替。如果你想在代码里批量生成播客,或给文章加一份"可听版",这篇指南带你从零跑通安装、首次生成到容器化部署。
它解决什么问题
普通文本和图片往往只能"看",Podcastfy 用生成式 AI(由大模型写对话稿,再由语音模型朗读)把它们变成自然的双人对话音频,而且整个过程可以在 Python 里编程调用、配置语言和风格,方便批量和定制。注意它的边界:这不是一个拖拽式的网页工具,你需要会一点 Python、准备好 API 密钥;如果你只想要一个点按钮就能用的界面,它不太合适。
从零到第一个结果
环境检查:先确认 Python 版本和依赖
Podcastfy 要求 Python 3.11 及以上版本,并依赖 ffmpeg 做音频处理。先确认版本:
python --version如果版本低于 3.11,建议用 conda 或 pyenv 单独建一个环境,避免污染系统 Python。
一条命令完成安装
pip install podcastfy pip install ffmpeg安装完成后,按 usage/config.md 的说明把你的 LLM 和语音合成 API 密钥写进.env文件(项目默认使用 Google 的 gemini-2.5-flash 模型写稿,默认用 OpenAI 做语音合成)。
最快拿到第一个音频
下面这段代码是最短可运行路径:传入两个网页链接,生成一段对话式播客,运行后会在data/audio目录下得到一个 mp3 文件。
from podcastfy.client import generate_podcast audio_file = generate_podcast(urls=["<url1>", "<url2>"])不喜欢写代码的话,命令行等价写法是一行:
python -m podcastfy.client --url <url1> --url <url2>换三种素材喂给它 🎧
网页链接:最主流的输入方式
原理是抓取页面文本,交给 LLM 改写成两位主持人的对话稿。除了上面两个--url,还支持--file从文本文件读取一批链接:
python -m podcastfy.client --file path/to/urls.txt本地图片:让 AI 边看边聊
多模态模型会先"看懂"图片内容,再围绕它组织对话——项目 README 里的示例就是用《神奈川冲浪里》这类画作生成讲解播客:
python -m podcastfy.client --image path/to/image1.jpg --image path/to/image2.pngYouTube 视频:先取字幕再写稿
它通过 youtube-transcript-api 拉取视频字幕,再基于字幕生成对话,适合把长访谈浓缩成短播客;长内容可加--longform生成 30 分钟以上的节目:
python -m podcastfy.client --url <youtube视频链接> --longform纯文本和现成稿:跳过抓取环节
手里已有文字(文章正文、讲稿、PDF 提取的文字)时,直接用--text传字符串或--transcript传文本文件即可;只想先省钱验证文案效果,可加--transcript-only只出文字稿不出音频。更多参数见 usage/cli.md。
谁最适合用它
内容创作者:把你的博客文章、专栏或访谈视频批量转成播客,内容一次生产、两次分发,覆盖偏好"听"而非"读"的受众。
教育工作者:把讲义、课件和图表变成对话音频,学生可以反复听;对阅读困难或视觉受限的学生尤其友好。
研究人员:把论文 PDF 变成口语化对谈,方便更广的受众(包括听障之外的忙碌读者)快速了解你的工作,也给论文做"音频摘要"。
无障碍实践者:需要一个可嵌入自有流程的工具,把多模态内容稳定转成听觉格式,而不是依赖某个闭源网页。
自动化工程师:因为它本质是库和 CLI,适合写进数据流水线——每天抓取一批文章,定时任务自动生成日更播客,这是纯 UI 工具做不到的规模化玩法。
从本地到服务化
本地脚本够用之后,可以把它变成一个 API 服务:项目提供了 官方 Dockerfile(基于 FastAPI,目前对 URL 输入是 Beta 状态),用 Docker 打包并启动 API 后,用 HTTP 请求即可触发生成,返回方式是:
fetch_audio(request_data, ENDPOINT, BASE_URL)request_data里放要生成的素材和配置,ENDPOINT、BASE_URL指向你部署的 API 地址,具体请求体格式可参考仓库里的usage/fast_api_example.py示例。
生态与相关项目
以下项目基于 Podcastfy 构建,可视为它的上下游生态:
| 项目名 | 定位 | 一句话说明 |
|---|---|---|
| OpenNotebook | 开源笔记应用 | 在笔记工作流中调用 Podcastfy 生成播客 |
| SurfSense | 研究助手类工具 | 把调研素材转为可收听的对话内容 |
| OpenPod | 在线使用入口 | 以网页服务形式提供 Podcastfy 能力 |
| Podcast-llm | 同类生成项目 | 另一个基于 LLM 的播客生成实现,可对比参考 |
| Podcastfy-HuggingFace App | 在线演示 | 无需本地配置的演示空间,适合快速体验效果 |
常见问题
1. 报 ffmpeg 相关错误,音频生成失败音频拼接依赖 ffmpeg,先确认已执行pip install ffmpeg且系统能调用到它;Windows 上有时还需要把 ffmpeg 的 bin 目录加入 PATH。
2. 运行时报缺少 API key 或 401/403按 usage/config.md 把密钥放进.env并注意变量名与api_key_label对应。一个具体坑:Google 的多说话人语音(多音色对话)只对通过申请的项目开放,未获批时会收到 "403 Multi-speaker voices are only available to whitelisted projects",此时可换 OpenAI 或 ElevenLabs 的 TTS 后端。
3. 想先验证效果但不想花钱合成音频加--transcript-only只生成文字稿,确认对话质量后再出音频,能省不少费用。
小结
Podcastfy 把"网页、图片、PDF 变播客"这件事变成了可编程、可定制、可多语言的 Python 流程,适合从个人内容到批量流水线不同尺度的需求。下一步建议:先用--transcript-only对你的一篇真实文章跑一遍,满意后再合成音频,逐步尝试图片输入和自定义对话配置。
【免费下载链接】podcastfyAn Open Source Python alternative to NotebookLM's podcast feature: Transforming Multimodal Content into Captivating Multilingual Audio Conversations with GenAI项目地址: https://gitcode.com/GitHub_Trending/po/podcastfy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考