← 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 58
Install: claude install-skill lllloo/obsidian-memory
# YouTube Channel to Notes 將 YouTube 頻道影片批次轉換成 Obsidian vault 筆記。 > 本 skill 產出進入 `feeds/youtube/`。這是系統外、只供使用者瀏覽的自動筆記;不進 `raw/` 或 `wiki/`。本 skill 只負責同步與維護 feeds。 ## ��料夾規則 - 筆記存放:`feeds/youtube/<頻道名>/`(例:`feeds/youtube/Chase-H-AI/`) - `feeds/` 不屬公開層;Quartz 設定在本 repo 外,發佈端必須維持只發佈 cards/topics 或明確排除 `feeds/**` - 每個頻道資料夾下建立 `01.index.md` 與 `02.影片清單.base` 作為索引(數字前綴確保固定排第一) - 影片筆記的 frontmatter 需加 `parent: "[[01.index]]"`,讓 Obsidian 圖譜能從影片連回頻道 index(`.base` 檔案不產生圖譜連結,只有 property link 有效) - 完整影片筆記寫入後凍結;`draft: true` 占位可在重試成功時覆寫,頻道 index、Base 與 checkpoint 可由本 skill 維護 ## 前置作業 用 `Read schema/vault-map.md` 確認 cwd 為 vault root(harness-native,不經 shell);讀不到就停止並請使用者 cd 到 vault 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 全部更新」→ 掃 `feeds/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:抓取影片清單與頻道