← ClaudeAtlas

vault-youtube-synclisted

將 YouTube 頻道影片批次轉成 Obsidian 筆記,支援指定頻道 URL(@handle)或一次同步所有既有頻道;每個頻道建立 index + base view 索引,含增量同步(last_sync_id checkpoint)與失敗占位重試(draft 占位)。使用時機:使用者提供 YouTube 頻道 URL(含 @handle)、要求「同步頻道影片」、「整理 YouTube 到 vault」、「抓頻道影片建筆記」、「更新所有頻道」、「yt 全部更新」,或直接呼叫 /vault-youtube-sync。
lllloo/obsidian-memory · ★ 0 · AI & Automation · score 60
Install: claude install-skill lllloo/obsidian-memory
# YouTube Channel to Notes 將 YouTube 頻道影片批次轉換成 Obsidian vault 筆記。 > 本 skill 產出進入 `Inbox/YouTube/`,代表「待消化暫存」。使用者讀完會內化成 Cards 並歸檔至 `Topics/<主題>/`,Inbox 原篇刪除。Skill 只負責抓��,不負責消化。 ## 資料夾規則 - 筆記存放:`Inbox/YouTube/<頻道名>/`(例:`Inbox/YouTube/Chase-H-AI/`) - 此資料夾已在 `quartz.config.ts` 的 `ignorePatterns` 中,**不會發佈到網站** - 每個頻道資料夾下建立 `01.index.md` 與 `02.影片清單.base` 作為索引(數字前綴確保固定排第一) - 影片筆記的 frontmatter 需加 `parent: "[[01.index]]"`,讓 Obsidian 圖譜能從影片連回頻道 index(`.base` 檔案不產生圖譜連結,只有 property link 有效) ## 前置作業 用 `Read vault-map.md` 確認 cwd 為 repo root(harness-native,不經 shell);讀不到就停止並請使用者 cd 到 repo root。 本 skill 高頻踩雷點:defuddle transcript 若含 token / 個資直接跳過該筆;頻道主題 tag 先用 `Grep` 查既有 vault tags 沿用,避免 `claude-code` vs `claudeCode` drift。 ## 步驟 0:判斷執行模式 依使用者輸入決定處理範圍: - **模式 A — 指定頻道**:使用者給 handle 或頻道 URL(例:`@Chase-H-AI`、`https://www.youtube.com/@Chase-H-AI/videos`)→ 直接以該 handle 執行步驟 1-6 - **模式 B — 同步全部既有頻道**:使用者未指定頻道,或明說「同步全部 / 更新所有頻道 / yt 全部更新」→ 掃 `Inbox/YouTube/*/01.index.md`,從每份 frontmatter 的 `source:` 欄位抽出 handle,**依序**逐頻道跑步驟 1-6(頻道之間順序執行避免 YouTube rate limit;單頻道內步驟 5 仍維持 5-6 部一批平行) 模式 B 取得頻道清單(每行一個 `source:` URL),cwd = repo root: ``` python3 .agents/skills/vault-youtube-sync/scripts/list_channels.py ``` 模式 B 規則: - 只處理已有 `01.index.md` 的頻道;**不會自動加新頻道**。新頻道首次同步仍須 `/vault-youtube-sync @handle` 顯式觸發 - 單頻道任一步驟失敗(fetch_videos error、network 異常等)→ 記錄錯誤、跳下一頻道,不中斷整批 - 全部跑完後在步驟 6 用一張總表呈現各頻道結果 ## 步驟 1:抓取影片清單與頻道簡介 用 `fetch_videos.py` 一次抓取頻道頁面,同時取出影片清單與頻道簡介。cwd = repo root: ``` python3 .agents/skills/