这份文档是 Podcast-Agent CLI 的统一使用文档。
开发环境安装:
python -m venv .venv
.venv/bin/pip install -e ".[dev]"如果需要 PDF 或小红书图片渲染:
.venv/bin/pip install -e ".[pdf,xhs]"
.venv/bin/playwright install chromium创建本地环境配置:
cp .env.example .env常用环境变量:
DASHSCOPE_API_KEY
YOUTUBE_COOKIES_FILE
ALIYUN_API_KEY
ALIYUN_ASR_API_BASE
ALIYUN_ASR_MODEL
OSS_ENDPOINT
OSS_BUCKET_NAME
OSS_ACCESS_KEY_ID
OSS_ACCESS_KEY_SECRET
FFMPEG_BIN
podcast-agent run 初始化一次 run,获取 source、metadata、transcript
podcast-agent transcript 单独获取 YouTube transcript
podcast-agent transcribe-audio 转录本地音频文件
podcast-agent intent 推断报告语言和长度偏好
podcast-agent evidence 从 transcript 提取证据
podcast-agent outline 生成观点大纲
podcast-agent viewpoints 生成观点详情
podcast-agent summary 生成总结
podcast-agent report 生成 reports/report.md 和 reports/report.html
podcast-agent report-pdf 基于 reports/report.html 生成 reports/report.pdf
podcast-agent xhs-report 生成 reports/xhs/ 小红书图文报告
podcast-agent full 从 URL 跑完整流程
podcast-agent full-batch 并发跑多个完整流程 case
查看帮助:
.venv/bin/podcast-agent --help
.venv/bin/podcast-agent full --help
.venv/bin/podcast-agent xhs-report --help.venv/bin/podcast-agent full \
--url "https://www.youtube.com/watch?v=<video-id>" \
--question "这个视频讲了什么?" \
--output-dir output/my-report最终主要输出:
output/my-report/
├── input.json
├── source.json
├── elements/
│ ├── metadata.json
│ ├── transcript.vtt
│ ├── transcript.txt
│ └── transcript_info.json
├── insights/
│ ├── intent.json
│ ├── evidence.json
│ ├── outline.json
│ ├── viewpoints.json
│ └── summary.json
└── reports/
├── report.md
├── report.html
├── report.pdf
└── xhs/
├── note.md
├── post_meta.json
└── images/
查看 Markdown 报告:
sed -n '1,240p' output/my-report/reports/report.md查看小红书发布文案:
cat output/my-report/reports/xhs/post_meta.json分阶段命令适合调试某个阶段,或复用已有 artifacts。
.venv/bin/podcast-agent run \
--url "https://www.youtube.com/watch?v=<video-id>" \
--question "这个视频讲了什么?" \
--output-dir output/my-reportrun 会生成基础 artifacts:
input.json
source.json
elements/metadata.json
elements/transcript.vtt
elements/transcript.txt
elements/transcript_info.json
.venv/bin/podcast-agent transcript \
--url "https://www.youtube.com/watch?v=<video-id>" \
--output-dir output/transcript-demo该命令优先使用 YouTube 原生字幕;如果没有可用字幕,会在配置齐全时走音频转录 fallback。
.venv/bin/podcast-agent intent \
--question "Please summarize this briefly in English." \
--output-dir output/my-report输出:
output/my-report/insights/intent.json
已有 input.json 和 elements/transcript.vtt 时:
.venv/bin/podcast-agent evidence \
--output-dir output/my-report没有前置 artifacts 时,也可以让 evidence 命令先生成上游素材:
.venv/bin/podcast-agent evidence \
--url "https://www.youtube.com/watch?v=<video-id>" \
--question "这个视频讲了什么?" \
--output-dir output/my-report.venv/bin/podcast-agent outline \
--output-dir output/my-report
.venv/bin/podcast-agent viewpoints \
--output-dir output/my-report
.venv/bin/podcast-agent summary \
--output-dir output/my-report输出:
output/my-report/insights/outline.json
output/my-report/insights/viewpoints.json
output/my-report/insights/viewpoint_V*.json
output/my-report/insights/summary.json
.venv/bin/podcast-agent report \
--output-dir output/my-report输出:
output/my-report/reports/report.md
output/my-report/reports/report.html
PDF 基于已有 HTML:
.venv/bin/podcast-agent report-pdf \
--output-dir output/my-report输出:
output/my-report/reports/report.pdf
.venv/bin/podcast-agent xhs-report \
--output-dir output/my-report只生成 note.md 和 post_meta.json,不渲染 PNG:
.venv/bin/podcast-agent xhs-report \
--output-dir output/my-report \
--skip-render指定写作角度:
.venv/bin/podcast-agent xhs-report \
--output-dir output/my-report \
--angle "面向关注 AI 创业和商业落地的读者"输出:
output/my-report/reports/xhs/
├── note.md
├── post_meta.json
├── cover.png
└── images/
├── intro.png
└── page_1.png
.venv/bin/podcast-agent transcribe-audio \
--audio-path /path/to/audio.wav \
--output-dir output/audio-demo \
--language zh输出:
output/audio-demo/elements/transcript.vtt
output/audio-demo/elements/transcript.txt
从 JSON case 文件并发跑完整流程:
.venv/bin/podcast-agent full-batch \
--cases examples/full-report-cases.json \
--max-jobs 3只预览选中的 case,不执行:
.venv/bin/podcast-agent full-batch \
--cases examples/full-report-cases.json \
--tag new \
--dry-run指定 case:
.venv/bin/podcast-agent full-batch \
--cases examples/full-report-cases.json \
--case V9eI-t3TApE \
--max-jobs 1输出目录:
output/batch-<run-id>/
├── <case-id>-<run-id>/
└── logs/
├── <case-id>.log
└── summary.json
也可以使用脚本:
./scripts/run-full-batch.sh
MAX_JOBS=5 ./scripts/run-full-batch.sh
./scripts/run-full-batch.sh --tag new --dry-runfull-batch 默认读取:
examples/full-report-cases.json
格式:
{
"version": 1,
"default_question": "这个视频讲了什么?",
"cases": [
{
"id": "V9eI-t3TApE",
"url": "https://www.youtube.com/watch?v=V9eI-t3TApE",
"question": "这个视频讲了什么?",
"tags": ["new", "full", "xhs", "pdf"]
}
]
}question 可省略;省略时使用 default_question。
如果 insights 已经生成,只调整报告样式:
.venv/bin/podcast-agent report \
--output-dir output/my-report
.venv/bin/podcast-agent report-pdf \
--output-dir output/my-report.venv/bin/podcast-agent xhs-report \
--output-dir output/my-report \
--angle "面向产品经理和创业者".venv/bin/podcast-agent outline --output-dir output/my-report
.venv/bin/podcast-agent viewpoints --output-dir output/my-report
.venv/bin/podcast-agent summary --output-dir output/my-report
.venv/bin/podcast-agent report --output-dir output/my-report
.venv/bin/podcast-agent report-pdf --output-dir output/my-report
.venv/bin/podcast-agent xhs-report --output-dir output/my-report先生成 HTML:
.venv/bin/podcast-agent report \
--output-dir output/my-report.venv/bin/playwright install chromium如果视频需要登录态,可以设置 cookies 文件:
YOUTUBE_COOKIES_FILE=/absolute/path/to/cookies.txt音频转录需要 Aliyun 和 OSS 配置。检查 .env 中是否设置:
ALIYUN_API_KEY
OSS_ENDPOINT
OSS_BUCKET_NAME
OSS_ACCESS_KEY_ID
OSS_ACCESS_KEY_SECRET
.venv/bin/podcast-agent --help
.venv/bin/podcast-agent full-batch --dry-run