Design & media

Podcast Automation

Try it

播客全流程自动化——抓取、转录、Sonos播放、飞书Wiki归档。Use when user asks to download a podcast, transcribe audio, play on Sonos, or archive podcast notes to Feishu Wiki.

What it does

一站式播客自动化技能,覆盖 **抓取 → 转录 → Sonos 播放 → 飞书 Wiki 归档** 全流程。

The skill document

Podcast Automation

一站式播客自动化技能,覆盖 抓取 → 转录 → Sonos 播放 → 飞书 Wiki 归档 全流程。

前提条件

依赖用途安装
curl / yt-dlp下载播客音频pip install yt-dlp(可选,curl 可处理直链)
whisper本地语音转录pip install openai-whisper
sonosSonos 音箱控制go install github.com/steipete/sonoscli/cmd/sonos@latest
飞书自建应用Wiki 归档需开通 wiki:wiki 权限,配置 FEISHU_APP_ID / FEISHU_APP_SECRET

一、抓取播客音频

1.1 直链下载

curl -L -o /tmp/podcast.mp3 "https://example.com/episode.mp3"

1.2 RSS 解析 + 下载

# 解析 RSS 获取最新一期音频 URL
AUDIO_URL=$(curl -s "https://feeds.example.com/podcast.rss" \
  | python3 -c "
import sys, xml.etree.ElementTree as ET
root = ET.fromstring(sys.stdin.read())
ns = {'itunes': 'http://www.itunes.com/dtds/podcast-1.0.dtd'}
enc = root.find('.//item/enclosure')
print(enc.get('url') if enc is not None else '')
")
curl -L -o /tmp/podcast.mp3 "$AUDIO_URL"

1.3 yt-dlp(支持 YouTube / Spotify 等平台)

yt-dlp -x --audio-format mp3 -o "/tmp/podcast.%(ext)s" "https://www.youtube.com/watch?v=XXX"

二、本地转录

whisper /tmp/podcast.mp3 --model medium --output_format txt --output_dir /tmp/podcast-out
# 转录结果: /tmp/podcast-out/podcast.txt
  • --model turbo:速度优先
  • --model medium:平衡
  • --model large:精度优先
  • --task translate:翻译为英文

三、Sonos 播放

# 发现音箱
sonos discover

# 播放本地或网络音频
sonos play --name "Kitchen" "https://example.com/episode.mp3"

# 音量控制
sonos volume set 20 --name "Kitchen"

如遇 no route to host,确认本地网络权限(macOS 需在隐私设置开启 Local Network)。

四、飞书 Wiki 归档

4.1 获取 Token

TOKEN=$(curl -s -X POST \
  'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
  -H 'Content-Type: application/json' \
  -d "{\"app_id\":\"$FEISHU_APP_ID\",\"app_secret\":\"$FEISHU_APP_SECRET\"}" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['tenant_access_token'])")

4.2 创建 Wiki 页面

SPACE_ID="your_space_id"
RESULT=$(curl -s -X POST \
  "https://open.feishu.cn/open-apis/wiki/v2/spaces/$SPACE_ID/nodes" \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d "{\"obj_type\":\"docx\",\"node_type\":\"origin\",\"title\":\"播客笔记: Episode Title\"}")
OBJ_TOKEN=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['node']['obj_token'])")

4.3 写入转录内容

TRANSCRIPT=$(cat /tmp/podcast-out/podcast.txt)
curl -s -X POST \
  "https://open.feishu.cn/open-apis/docx/v1/documents/$OBJ_TOKEN/blocks/$OBJ_TOKEN/children" \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d "{\"children\":[{\"block_type\":2,\"text\":{\"elements\":[{\"text_run\":{\"content\":\"$TRANSCRIPT\"}}]}}],\"index\":0}"

五、完整流程示例

# 1. 抓取
curl -L -o /tmp/podcast.mp3 "https://cdn.example.com/ep42.mp3"

# 2. 转录
whisper /tmp/podcast.mp3 --model medium --output_format txt --output_dir /tmp/podcast-out

# 3. Sonos 播放
sonos play --name "Living Room" "https://cdn.example.com/ep42.mp3"

# 4. 归档到飞书 Wiki
bash references/scripts/archive-to-wiki.sh \
  --title "EP42: AI与未来" \
  --transcript /tmp/podcast-out/podcast.txt \
  --space-id "$FEISHU_SPACE_ID"

六、环境变量

变量说明必填
FEISHU_APP_ID飞书自建应用 App ID归档时必填
FEISHU_APP_SECRET飞书自建应用 App Secret归档时必填
FEISHU_SPACE_ID默认归档 Wiki 空间 ID归档时必填

七、触发场景

  • 「下载这期播客并转录」
  • 「把播客转录存到飞书Wiki」
  • 「在Sonos上播放最新一期播客」
  • 「抓取RSS并归档全部流程」

Related skills

Manage Stripe customers, subscriptions, invoices, products, prices, and payments through OAuth-authenticated API calls.

by byungkyu720 installs29 stars

Post videos, photos, text, and documents to 10 social platforms through a single REST API call.

by victorcavero14375 installs50 stars

Search, read, and manage YouTube videos, playlists, channels, subscriptions, and comments via managed OAuth.

by byungkyu880 installs145 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

chatgpt-apps

Official

Scaffold ChatGPT Apps SDK apps with a docs-first workflow, choosing example vs. starter scaffold based on app archetype.

by OpenAI27.5k stars

More from terrycarter1985

Browse all skills

Grade English homework for Chinese primary students in grades 3–6 with consistent, age-appropriate feedback.

by terrycarter198517 installs

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market c...

by terrycarter198524 installs

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

by terrycarter198519 installs

Generate reusable, policy-aligned customer service replies for e-commerce aftersales scenarios. Use when support staff need fast, compliant Chinese responses...

by terrycarter198518 installs

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

by terrycarter198516 installs

Comprehensive developer cheatsheets and quick references for Git, Docker, Kubernetes, jq, curl, and common Linux commands. Use when needing quick lookups for...

by terrycarter198516 installs