podcast-to-course
Turn any podcast transcript into reusable AI judgment assets — framework cards, decision checklists, interview talking points, and an interactive HTML course.
Install / Use
npx skills add Cobb04/podcast-to-courseInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Education & ResearchSupported Platforms
Tags
Skill content
View source on GitHubPodcast to Course
听播客时:醍醐灌顶。第二天开会:那位嘉宾说过一个特别厉害的……叫什么来着?
Podcast to Course 专治这种「听过 ≈ 学会」的错觉:它把播客变成可复用的 AI 产品经理课程,让洞见不再从左耳朵进、右耳朵拿着离职证明出去。
以前它是一个「拿到转写稿以后很能打」的 Skill。现在它长出了产品的前半截:给它一份转写文件,或者直接给一个公开的小宇宙 / 音频链接;它会在 Apple Silicon Mac 上免费本地转写,再产出结构化框架卡、决策清单、面试表达素材、个人成长日志——对于里程碑级别的单集,还能生成一个漂亮的交互式 HTML 课程。
一句话:以前只负责做菜,现在连买菜、洗菜、切菜也包了。ASR API 账单是 0 元,电费和风扇声另算。
| 你扔进来 | 它在背后忙什么 | 你拿走什么 |
|---|---|---|
| 小宇宙公开单集链接 | 解析音频、断点续传、本地 ASR、说话人对齐、质量检查 | transcript.md + 可审计中间产物 |
| 公网 .m4a/.mp3 链接 | 下载、本地转写、尾部幻觉过滤 | transcript.md |
| 已有转写稿 | 清洗、结构化、提炼判断 | 学习卡 / 知识资产 / HTML 课程 |
谁需要这个?
AI产品实习生/想找到AI产品实习的同学/传统产品想转AI产品/创业者/Builder——你听了大量 AI/Agent/AI 产品播客,但听完就忘,无法系统化,更无法应用到实际工作中。
你在通勤、健身、做家务时听播客。听到某个洞见时觉得醍醐灌顶——但几天后就忘了。你没有一套系统来捕获、整理、内化你听到的东西。
你的目标是实用,不是学术:
- 从对话中提取可复用的思维模型,应用到自己的产品/商业决策中
- 建立产品直觉——知道哪些 AI 模式该跟,哪些该忽略
- 通过内化资深 builder 的 tradeoff 思维,做出更快更好的判断
- 在开会、面试、汇报时有结构化框架脱口而出
- 把不同单集的洞见串联起来——看到第 7 期如何在第 2 期和第 5 期的基础上延伸
你不是要成为研究员。你要的是把播客里的智慧转化成明天早上就能用的工具。
三种输出深度模式!
模式 1:10 分钟学习卡(超模轻食版)
一个 markdown 文件,10 分钟扫完:核心问题 + 3 个核心判断 + 3 个反直觉洞见 + 1 个可复用框架 + 5 条行动建议 + 1 道自测题。
适合日常听完快速复盘。
模式 2:学习笔记 + 框架卡(标准版,默认大碗)
一组可拖入 Notion、Obsidian 的 markdown 资产:
EPISODE-HOME.md— 单集强入口:学习、验证、应用、反驳从这里开始summary.md— 结构化摘要 + 逻辑地图framework-card.md— 命名框架 + 决策规则 + 边界条件decision-checklist.md— 从本期提炼的"何时做什么"清单interview-answer-bank.md— 面试/汇报用 30 秒/60 秒回答模板claim-ledger.md— 每条核心 claim 的时间戳、原文锚点、可信度、状态debate-arena.md— AI 与嘉宾辩论场:质疑高影响观点,必要时 web-searchwiki-change-report.md— 本期对知识库新增、更新、矛盾、开放问题的报告growth-log.md— 你的 AI 世界观"前后对比"快照knowledge-entry.md— 跨集连接 + 可信度汇总
适合希望沉淀到个人知识库的深度学习者。
模式 3:交互式 HTML 课程(超级碗)
一个零依赖、双击即开的单文件 HTML。面向 Karpathy、OpenAI、产品负责人访谈这种你会反复参考的里程碑级单集。
- 原话 ↔ 可操作洞见对照 — 左边嘉宾原话,右边提炼成可以立刻用的判断
- 框架逐层展开 — 点击按钮一步步展开决策框架的每一层
- 场景判断测验 — 不是"嘉宾说了什么",而是"你遇到 X 情况,用本期框架怎么判断"
- 对话流动画 — iMessage 风格呈现播客中的观点交锋
- 可信度标签 — 每个观点标注 🟢 数据支撑 / 🟡 经验支撑 / 🔴 推测
- 学习闭环 — pre-test、应用练习、24 小时复习卡,避免只看完不内化
- 知识库持久化 — 每处理一期自动更新总索引,标记与往期的关联
三种使用模式
| 模式 | 你给什么 | 你得到什么 |
|---|---|---|
| /podcast-preview | 标题 + 嘉宾名 | 值不值得听(1-10 分)+ 3 个带着听的问题 + 可跳过部分 |
| /podcast-course | 完整转写文件 | Tier 1/2/3 输出 |
| /podcast-review | 你自己的听后感 | 偏差检查 + 遗漏补充 + 框架精炼 |
支持的输入格式
WhisperKit 本地转写 · 通义听悟 · 飞书妙记 · YouTube transcript · 小宇宙公开链接 · 公网 .m4a/.mp3 链接 · 任意 STT 工具转写 · 你自己的笔记
先把声音变成字:本地转写产品
还没有转写稿?问题不大。podcast-to-course/scripts/ingest_podcast.py 负责把公开链接变成可靠的 transcript.md。默认 --provider auto:优先使用免费的本地 WhisperKit,未安装时才回退到已配置的通义听悟。
为什么不让 ChatGPT Live 坐旁边听两个小时?
因为那很有喜剧效果,但不太像生产系统:网络抖一下,它可能错过嘉宾最值钱的半句话;电脑还得全程播放,谁打个喷嚏都可能成为神秘第三位嘉宾。
正式方案会下载原始音频,支持断点续传,保留词级时间戳和原始产物,并且可以重复运行、检查和复现。Live 旁听方案保留给公司团建。
本地免费方案(推荐)
需要 Apple Silicon Mac。WhisperKit 与 SpeakerKit 都通过 Argmax OSS Swift CLI 调用,音频和转写过程留在本机;首次运行会联网下载模型。
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
brew install whisperkit-cli
如果 Homebrew 下载失败,也可以从官方 Swift 仓库构建 CLI,并通过
--whisperkit-cli /path/to/argmax-cli 指定可执行文件:
git clone https://github.com/argmaxinc/argmax-oss-swift.git
cd argmax-oss-swift
swift build -c release --product argmax-cli
超过 2 小时的音频会使用增量加载和 VAD 切块,不设人为时长上限——长节目不会在 02:00:01 被保安请出去。实际速度与上限由 Mac 性能、磁盘和模型决定。默认开启 SpeakerKit 说话人分离。
正文始终来自 WhisperKit 原生词级时间戳,RTTM 只负责说话人归属,避免分离结果把 LibLib、PMF 等词拆坏。系统还会以物理音频时长校验尾部漂移,并输出机器可读的质量指标。
当前整期实测参考:02:08:33 的中文双人访谈,本地 pipeline 用时约 24:11(约 5.3× 实时速度)。这是一台机器上的实测,不是宇宙常数;你的 Mac、模型和音质都会参与投票。
三种互斥输入
1. Transcript Mode — 你已有转写稿(免费、纯本地、不调 API)
python podcast-to-course/scripts/ingest_podcast.py \
--transcript path/to/transcript.md \
--out outputs/demo
2. Xiaoyuzhou URL Mode — 小宇宙公开单集链接
python podcast-to-course/scripts/ingest_podcast.py \
--url "https://www.xiaoyuzhoufm.com/episode/..." \
--out outputs/demo
先解析页面里的公开 audio_url,下载到可续传的本地缓存,再由 WhisperKit 转写并产出 transcript.md。
3. Audio URL Mode — 公网可直接访问的音频文件 URL
python podcast-to-course/scripts/ingest_podcast.py \
--audio-url "https://example.com/audio.m4a" \
--out outputs/demo
常用参数:
# 明确使用本地 provider;已知是双人访谈可指定人数
python podcast-to-course/scripts/ingest_podcast.py \
--audio-url "https://example.com/audio.m4a" \
--provider whisperkit \
--speaker-count 2 \
--prompt "LibLib,陈冕,Evoken" \
--out outputs/demo
# 默认 4 个 VAD worker;内存紧张时可调低
python podcast-to-course/scripts/ingest_podcast.py \
--audio-url "https://example.com/audio.m4a" \
--concurrent-worker-count 2 \
--out outputs/demo
# 网络不稳定时,可预先下载模型并全程使用本地路径
python podcast-to-course/scripts/ingest_podcast.py \
--audio-url "https://example.com/audio.m4a" \
--provider whisperkit \
--whisperkit-cli /path/to/argmax-cli \
--model-path /path/to/whisperkit-coreml-model \
--diarization-model-path /path/to/speakerkit-coreml \
--speaker-count 2 \
--out outputs/demo
# 关闭说话人分离,减少内存开销
python podcast-to-course/scripts/ingest_podcast.py \
--audio-url "https://example.com/audio.m4a" \
--no-diarization \
--out outputs/demo
每次成功会保留可审计的中间产物:
outputs/demo/
├── source_audio.m4a # 可续传的本地缓存,扩展名按源文件决定
├── source_audio.m4a.download.json # URL、字节数、ETag 等缓存身份
├── whisperkit_native/ # WhisperKit 原生 JSON + SRT + 原始 RTTM
├── whisperkit.log # 完整命令和 CLI 输出
├── raw_transcription.json # provider 无关的稳定中间格式
├── transcription_metrics.json # 时长、漂移、词数、覆盖率与质量警告
├── transcript.md # 课程生成的唯一输入
└── ingest_report.md # provider、模型、路径和错误记录
通义听悟回退(可选)
若要显式使用云端听悟,传 --provider tingwu 并配置自己的阿里云密钥(绝不提交):
export ALIBABA_CLOUD_ACCESS_KEY_ID="..."
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="..."
export TINGWU_APP_KEY="..."
建议先用官方短音频验证:python podcast-to-course/scripts/tingwu_smoke_test.py。
边界说明。
- 只支持公开可访问内容。不绕过登录、付费、会员、加密、私有内容。
- 本地方案会下载音频到输出目录,并在后续重跑时复用或续传;大文件不会提交到 Git。
- 完整缓存只在 URL 与字节数均匹配时复用;同名但不同来源的音频不会误命中。
auto的顺序是 WhisperKit → 已配置的听悟。需要固定行为时显式传--provider。- 通义听悟仅用于 ASR 转写——其摘要/章节/问答能力不作为课程内容。
- WhisperKit 与
--transcript不产生 ASR API 费用;只有选中听悟时才可能产生云端费用。 - 自动解析或转写失败时,不能用 shownotes 冒充全文;请检查
ingest_report.md,或回退到 Transcript Mode。
设计哲学
提炼判断力,不做摘要
摘要告诉你"说了什么"。判断提炼告诉你什么时候用、什么时候不用、该信几分。每个观点带可信度标签。每个框架有边界条件。"这期很有启发"这种空话被明确禁止——如果一段输出能套在同类话题的任何一期上,那是摘要,不是提炼。
考应用,不考记忆
每道测验都把你放在真实场景里。"你的 CTO 提了一个 multi-agent 方案。用本期框架,你的第一反应应该是什么?"——而不是"嘉宾关于 multi-agent 说了什么?"
知识复利
每期更新你的个人 AI 判断库。knowledge-entry.md 把新洞见和往期连接——标记是强化、矛盾、还是延伸。20 期之后,你有大约 15 张精炼过的框架卡,而不是 60 张重复的。
防止播客污染 Wiki
播客发言不是事实源,而是 claim source。高影响观点必须进入 claim-ledger.md 和 debate-arena.md:先贴出嘉宾原话,再由 AI 质疑逻辑漏洞、样本偏差、因果过度归纳、与已有 wiki 的冲突;遇到产品状态、市场数据、研究结论等可能随时间变化的事实,必须 web-search。
每条核心 claim 都有状态:
accepted / tentative / challenged / disputed / outdated / rejected
只有经过锚点、证据、状态和必要质疑的判断,才能进入长期 wiki。
诚实校准
AI 播客最危险的是"听起来很对但毫无依据"的判断。每条洞察标注证据来源。嘉宾犹豫的地方,输出保留那种不确定性。遇到没有清晰框架的单集,输出直接说"本期框架密度低"——而不是硬编一个看起来像样子的模型。
可移植
Markdown 哪里都能用。HTML 零依赖自包含。不绑定任何平台。你的判断库跟着你的思考走。
安装
git clone https://github.com/Cobb04/podcast-to-course.git ~/.agents/skills/podcast-to-course
然后在 Claude Code 里说:"帮我把这期播客转成课程"
技能文件结构
.
├── README.md # 中文首页(默认)
├── README_EN.md # 英文版说明
├── requirements.txt # ingest 层依赖(下载/解析;听悟 SDK 为可选 provider)
├── .env.example # 凭据模板(绝不提交真实密钥)
└── podcast-to-course/
├── SKILL.md # 主技能指令
├── scripts/ # ingest 层 → 产出 transcript.md
│ ├── ingest_podcast.py # 统一 CLI(url / audio-url / transcript)
│ ├── audio_download.py # 公网音频缓存 + 断点续传
│ ├── extract_xiaoyuzhou_audio.py
│ ├── whisperkit_client.py # 免费本地 WhisperKit/SpeakerKit provider
│ ├── tingwu_client.py # 通义听悟离线转写封装
│ ├── tingwu_smoke_test.py
│ └── normalize_transcript.py
└── references/
├── build-self-contained.sh # 通用构建管线
├── podcast-engine.js # 交互引擎(测验、框架展开、导航)
├── podcast-styles.css # 播客专用样式
├── debate-arena-template.md # AI 与嘉宾辩论场模板
├── claim-ledger-template.md # claim 证据账本模板
├── episode-home-template.md # 单集强入口模板
├── gotchas.md # 常见踩坑清单
└── interactive-elements.md # 测验、框架、注释等交互模式
用 Claude Code 构建。基于 codebase-to-course 技能,由 Zara 原创。
Related Skills
last30days-skill
62.5kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
wigolo
5.4kThe go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.
autoresearch
6.3kClaude Autoresearch Skill — Autonomous goal-directed iteration for Claude Code. Inspired by Karpathy's autoresearch. Modify → Verify → Keep/Discard → Repeat forever.
claude-code
3.3kClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
