播客研究
使用安装时使用的同一个Python解释器来运行捆绑脚本。在 macOS/Linux 上,优先使用 python3;在 Windows 上,优先使用 py -3。如果用户在安装时使用了其他启动器,请继续使用该启动器。主要工作流程不需要 API 密钥。
预检
将此文件所在目录解析为 SKILL_DIR。在机器上执行第一个任务之前,请先运行:
python3 "$SKILL_DIR/scripts/check_setup.py" --skill-dir "$SKILL_DIR"
当所有必需检查显示 PASS 时再继续。WARN 行是可选的回退项。如果某项必需检查失败,请阅读 references/setup.md,修复报告中的问题,然后重新运行检查。
保持至少 5 GB 可用磁盘空间;建议 8 GB。初始本地 Whisper 模型下载约为 0.5–1.6 GB,下载的音频还需要额外的空间。
工作流程
1. 搜索
当英文查询能提高覆盖率时选择使用英文查询,同时保留用户想要的主题。
python3 "$SKILL_DIR/scripts/search_podcasts.py" \
--topic "TOPIC" \
--days-back 30 \
--max 10 \
--output-dir "WORK_DIR"
使用用户批准的工作目录。该脚本会创建 episodes.json。
2. 让用户选择剧集
显示带编号的结果,包括标题、节目名称、日期、时长和描述。询问用户要分析哪些剧集。除非用户已经请求所有结果,否则不要下载每个结果。
3. 下载
python3 "$SKILL_DIR/scripts/audio_downloader.py" \
--episodes-json "WORK_DIR/episodes.json" \
--select "1,3,5" \
--output-dir "WORK_DIR"
脚本优先尝试 RSS,其次是 YouTube。YouTube 提取需要 FFmpeg。它会写入 episodes_with_audio.json,并将失败标记为 unavailable。
4. 转录
python3 "$SKILL_DIR/scripts/transcriber.py" \
--audio-dir "WORK_DIR" \
--model turbo \
--language auto
后端会自动选择:Apple Silicon 上使用 MLX,其他平台上使用 faster-whisper。在较慢的仅 CPU 机器上使用 --model small。仅当用户明确接受 OpenAI API 要求和费用时,才使用 --model api。
5. 基于来源进行忠实分析
阅读每个选定剧集的转录和 episodes_with_audio.json。将描述和网络摘要视为次要证据,切勿将其视为转录。如果音频不可用,仅在可用时使用剧集描述和网络搜索,将证据标记为次要证据,并且不要将重构的文本作为直接引用呈现。
将简洁的 Markdown 报告写入 WORK_DIR/[topic]_podcast_report.md:
# [主题] 播客观点简报
**研究日期**:YYYY-MM-DD | **来源**:Apple Podcasts/RSS | **范围**:N 个剧集
## 一句话结论
用 2–3 句话陈述主要观点和最重要的分歧。
## 观点概览
| 演讲者或组织 | 立场 | 核心观点 | 原话引用 | 剧集 |
|---|---|---|---|---|
## 主要分歧
仅列出 2–3 个真正的分歧。将每个立场归因于一个具名的剧集和演讲者(当转录使演讲者明确时)。
## 剧集摘要
### [节目名称]:[剧集标题]
**嘉宾**:... | **日期**:... | **时长**:...
1. 三到五个基于来源的要点。
不要捏造演讲者身份、引用、日期或立场。当转录未确定某句话是谁说的时,将其归因于该剧集,而不是猜测。
6. 交付
显示 Markdown 报告并链接工作文件。仅在用户要求时才创建 Word:
python3 "$SKILL_DIR/scripts/md_to_docx.py" \
"WORK_DIR/[topic]_podcast_report.md" \
"WORK_DIR/[topic]_podcast_report.docx"
在 Windows 上,将 python3 替换为 py -3 并使用 Windows 路径。不要翻译 Python 脚本本身。
完成标准
只有满足以下条件任务才算完成:
- 搜索范围和所选剧集均已说明。
- 每个下载的剧集都有转录或明确标记为不可用。
- 直接引用来自转录;次要摘要已标记。
- 报告区分了共识与分歧,并将主张归因于剧集。
- 报告和支持元数据已保存到工作目录。
回退方案
- 无搜索结果:使用更清晰的英文查询或更宽的日期范围重试一次。
- RSS 失败:在安装 FFmpeg 的情况下允许使用捆绑的 YouTube 回退。
- 两种音频路径都失败:使用描述和可用的网络证据,标记局限性,并省略直接引用。
- 转录对于上下文来说太长:按顺序分块摘要,保留剧集归属,然后比较分块摘要。
- 本地转录不可用:阅读
references/setup.md;仅在有明确用户批准和已配置密钥的情况下使用 OpenAI。