尼坦播客
每周中文播客由USCardForum的热门讨论产生。
Nitan Podcast 是公共节目存储库:它拥有播客身份、提要、剧集资产、论坛帖子模板以及每集背后的Nitan/USCardForum特定逻辑。可重用的自动化正在被拆分为 CastForge,而这个回购仍然是该剧的经典之家。
论坛主题: 【Nitan Podcast】你的每周美卡论坛精华播客
flowchart LR
E[Extract via Nitan MCP] --> B[Optional Gemini brief]
B --> X[Export Markdown]
X --> NLM[NotebookLM Audio]
NLM --> MP3[GitHub Pages MP3]
MP3 --> RSS[Apple / Spotify / RSS]订阅
公共兼容性合同
自动化可能会进入 CastForge,但该节目面向用户的表面必须保持稳定。
- 源URL保持不变
https://lifan-builds.github.io/nitan-podcast/feed.xml - 网站URL保持不变
https://lifan-builds.github.io/nitan-podcast/ - 剧集URL保留
https://lifan-builds.github.io/nitan-podcast/episodes/weekly_meika_YYYY-Www.mp3 - 事件GUID保持
nitan-podcast-YYYY-Www格式 docs/feed.xml和docs/episodes/保持发布目标
这就是为什么Spotify和Apple Podcasts不会将迁移视为损坏或新的提要。
此回购拥有什么
- Nitan MCP提取和线程选择逻辑
- 类别声音和故事简介编辑规则
- 中文编辑提示和播客/论坛副本
- 播客元数据和RSS标识
docs/feed.xml和docs/episodes/*.mp3- 展示封面艺术等资产
- 本节目公共合同的验证和测试
什么 CastForge 拥有
- 可重复使用的管道级
- 调度和工作流自动化
- 自托管跑步者设置
- 作业编排和幂等性
- LLM和音频工具的共享集成
看 podcast.yaml 对于此回购将公开的实例合约 CastForge,以及 docs/castforge-migration.md 对于迁移计划。
快速开始
git clone https://github.com/lifan-builds/nitan-podcast.git
cd nitan-podcast
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env配置 MCP_*,可选 GEMINI_API_KEY,以及 NOTEBOOKLM_* 在 .env.
运行播客管道
python run_pipeline.py --dated
python run_pipeline.py --dated --skip-briefing
python run_pipeline.py --dated --publish-notebooklm
python run_pipeline.py --dated --generate-post --generate-rss --audio-url "https://..."
# Dry run without MCP
EXTRACTION_FIXTURE_PATH=fixtures/sample_extraction.json python run_pipeline.py --skip-briefing --datedStout打印主输出路径。看 python run_pipeline.py --help 对于完整的CLI。
NotebookLM设置
对于 --publish-notebooklm 使用 笔记本:
pip install -r requirements-integrations.txt && playwright install chromium- 跑
notebooklm login - 集
NOTEBOOKLM_NOTEBOOK_ID在.env
登录存储 ~/.notebooklm/storage_state.json;它与普通的Chrome谷歌登录是分开的。
自动化
该仓库拥有自己的每周时间表和GitHub Actions工作流。管道执行由以下驱动 CastForge,在运行时作为依赖项安装。
工作流在 自托管macOS运行程序 有三个周一重试窗口(太平洋标准时间上午6点/12点/6点)。第一次成功发布了这一集;后续触发器跳过。
管道阶段:
- MCP提取+可选Gemini简报+导出Markdown
- NotebookLM音频概述+下载MP3
- GitHub发布(备份)+将MP3复制到
docs/episodes/ - 生成RSS订阅源+论坛帖子草稿
- 提交+推送(GitHub Pages自动部署)
- 验证实时订阅源
手动触发: 操作选项卡, weekly-podcast,运行工作流。
发展
pytest tests/ -v
python scripts/validate_feed.py有用文档:
AGENTS.md建筑和惯例docs/castforge-migration.md回购拆分计划podcast.yaml对于未来的实例合同
项目结构
| 路径 | 目的 |
|---|---|
run_pipeline.py | 当前CLI编排器 |
extractor.py | Nitan MCP提取+夹具支撑 |
editorial/category_voice.yaml | 故事简报的规定性类别语音指南 |
briefing_writer.py | 可选Gemini简报 |
notebooklm_export.py | UTF-8 Markdown导出 |
notebooklm_audio.py | NotebookLM上传/生成/下载 |
publisher.py | 剧集元数据+论坛帖子 |
rss_feed.py | RSS 2.0+iTunes订阅源生成器 |
public_contract.py | 稳定的公共URL和标识符 |
docs/episodes/ | GitHub Pages提供的MP3 |
scripts/validate_feed.py | 饲料验证器 |
tests/ | 离线pytest覆盖率 |
许可证
麻省理工学院
