Communitygithub.com

winnieAI123/podcast-research-skill

跨平台AI代理技能,用於播客搜尋、本地Whisper轉錄及觀點分析

podcast-research-skill 是什麼?

此技能為AI代理(如Claude Code、Cursor、Codex等)提供一個完整的播客研究工作流程,涵蓋從搜尋、下載、轉錄到觀點分析的完整流程。使用者無需API金鑰即可使用本地Whisper模型進行轉錄,支援Apple Silicon(MLX)與其他平台(faster-whisper),並可選用OpenAI API(需使用者明確同意)。技能透過一系列Python腳本自動化執行,最終產出結構化的Markdown報告,包含觀點概覽、主要分歧、逐集摘要等,所有引用皆以原始逐字稿為準,避免幻覺。支援macOS/Linux與Windows,為開發者、研究人員及內容分析師提供高效、尊重來源的播客研究工具。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add winnieAI123/podcast-research-skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

播客研究

使用安裝時所用的同一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腳本本身。

完成標準

僅當滿足以下條件時,任務才算完成:

  1. 已說明搜尋範圍與選定的集數。
  2. 每個下載的集數都有逐字稿或明確標示為不可用。
  3. 直接引用來自逐字稿;次要摘要已標示清楚。
  4. 報告區分共識與分歧,並將主張歸屬到具體集數。
  5. 報告與支援性的元資料已儲存在工作目錄中。

備援方案

  • 無搜尋結果:使用更清晰的英文查詢或更廣的日期範圍再嘗試一次。
  • RSS失敗:當FFmpeg已安裝時,允許使用內建的YouTube備援方案。
  • 兩種音訊路徑都失敗:使用描述與可取得的網路證據,標示限制,並省略直接引用。
  • 逐字稿過長無法放入上下文:以連續區塊進行摘要,保留集數歸屬,然後比較區塊摘要。
  • 本地轉錄不可用:閱讀 references/setup.md;僅在使用者明確核准並設定好金鑰的情況下,才能使用OpenAI。

相關技能