Podcast Automation
播客自动化全流程技能,覆盖从抓取到归档的完整链路。
工作流
抓取最新播客 → 下载音频 → Whisper转录 → Sonos播放 → 飞书Wiki归档
前置依赖
- Python 3.9+,已安装
requests,beautifulsoup4,openai-whisper,python-dotenv,pyyaml - FFmpeg(Whisper转录需要)
- Sonos CLI(
sonos命令,可选) - 飞书应用凭证(可选,用于Wiki归档)
环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
FEISHU_APP_ID | Wiki归档时必填 | 飞书应用 App ID |
FEISHU_APP_SECRET | Wiki归档时必填 | 飞书应用 App Secret |
FEISHU_WIKI_SPACE_ID | Wiki归档时必填 | 目标Wiki空间ID |
WHISPER_MODEL | 否,默认 base | Whisper模型名称 |
WHISPER_LANGUAGE | 否,默认 zh | 转录语言 |
SONOS_DEFAULT_ROOM | 否,默认 客厅 | Sonos播放房间 |
配置文件
将 references/podcast_scraper.yaml 复制到项目 config/ 目录,按目标站点修改选择器:
site_name: "我的播客"
base_url: "https://example.com"
list_page:
url_pattern: "https://example.com/episodes/page/{page}/"
item_selector: "article.episode-card"
link_selector: "a.episode-permalink"
detail_page:
fields:
title:
selector: "h1.episode-title"
extract: "text"
required: true
audio_url:
selector: "audio source"
extract: "src"
required: true
使用方式
完整工作流
python3 scripts/podcast_automation.py --full
单步执行
# 仅抓取
python3 scripts/podcast_automation.py --scrape
# 仅转录
python3 scripts/podcast_automation.py --transcribe
# 仅Wiki归档
python3 scripts/podcast_automation.py --sync-wiki
# 仅Sonos播放
python3 scripts/podcast_automation.py --play
作为 OpenClaw 技能调用
在对话中提及播客相关需求即可触发,例如:
- "抓取最新一期播客"
- "转录这期播客并归档到Wiki"
- "在Sonos上播放最新播客"
输出
data/latest_episode.json— 最新一期元数据data/transcript_*.txt— 转录文本data/podcast_episodes.json— 历史抓取记录- 飞书Wiki节点 — 归档页面