name: youtube-transcript description: 抓 YouTube 影片的乾淨逐字稿,並可整理成 jerry 式章節 notes(章節摘要 + 範例稿 + 時間戳目錄)。當用戶說「抓逐字稿」「YouTube 逐字稿」「transcript」「這支影片講什麼」「幫我存這支影片」「影片整理一下」「影片大綱」,或貼出 youtube.com / youtu.be 連結要內容時使用。先跑 scripts/fetch-youtube-transcript.mjs 取乾淨逐字稿,再依需要產整理 notes。不做離線 whisper 轉錄(那是 scripts/transcribe-techtalk-video.py)。
/youtube-transcript — YouTube 逐字稿 + 整理 notes
這個 skill 在做什麼
丟一個 YouTube 連結 → 跑腳本抓乾淨逐字稿 → 依需要讀逐字稿、整理成 notes。查既有影片時:先讀 notes(整理過、可單讀),要原話才回 transcript。
不處理:離線語音轉錄(無字幕影片走 scripts/transcribe-techtalk-video.py)、綁特定主題的分析。
落地前先確認(每段對話第一次)
每段對話第一次要落地逐字稿前,先跟使用者確認兩件事,不要默默照預設存:
- 落地路徑 / 分組資料夾:預設
shared/references/external-systems/youtube/;若是連續看同一頻道 / 系列,可開分組資料夾(例如external-systems/telerik/)集中放。 - 要不要產 notes:只存逐字稿,還是逐字稿 + 整理 notes。
確認後,同一段對話後續影片沿用同一決定,不每支再問。預設落點是合理預設、不是唯一正解;第一次確認一次,避免事後搬檔 / 刪檔。
落點與兩檔結構(對齊 jerry 範本)
預設落在 shared/references/external-systems/youtube/;同頻道 / 系列可改落分組資料夾(例如 external-systems/telerik/),落點以對話開頭確認的決定為準。同一資料夾下,一支影片最多兩個檔:
{slug}-transcript.md— 生逐字稿,腳本產(必有)。{slug}-notes.md— 章節摘要 + 範例稿 + 時間戳目錄,AI 產(依對話確認決定要不要產;「只存逐字稿」時就沒有這檔)。
jerry 範本參考:artifacts/jerry-first-batch-2026-05-25/youtube-transcripts/DNpT-c1mW6w-notes.zh-TW.md。
抓逐字稿(固定步驟)
node scripts/fetch-youtube-transcript.mjs <url|videoId>
- 先不要給
--lang,讓腳本自己看實際字幕 track 選(猜語言碼會抓到空)。只有用戶明確指定語言才加--lang。例外:--asr-ok模式下,腳本可能選到zh-Hant等非原語言的自動翻譯字幕(劣質、不可用)。若是英文影片走 ASR,明確加--lang en抓原語言。 - 腳本會自動:優先手動字幕、429 退避重試、清 VTT、依標點或每 N 行分段、寫出 transcript.md。
- 腳本寫死落在
youtube/,不吃分組落點。 若這段對話確認落到分組資料夾(如telerik/),抓完要把 transcript 從youtube/搬過去。 - 429 限流:一次只抓一支。 多支併發抓會觸發 ASR 端點限流、重試耗盡失敗。
- 前置(deno + uvx/yt-dlp)缺了腳本會自己報錯並給安裝指令;照訊息指引使用者裝即可。
整理 notes(判斷層,AI 做,不交給腳本)
讀完 transcript 後,依 jerry 結構產 {slug}-notes.md:
- 章節摘要 — 把影片切段(開場 / 核心觀念 / 各主題 / 收尾),每段條列重點。
- 完整範例稿(可直接模仿) — 挑高價值段落整理成可套用的稿。
- 範例稿語言依影片原語言:影片英文 → 中文整理 + 英文原話並陳(保留原文);影片中文 → 直接中文。
- 時間戳記目錄 — 各章節對應影片時間點。
求職用途的整理要吃 career-positioning(.specify/conventions/career-positioning.md),重點是「對 Xin 求職有什麼用」,不是機械摘要。
Decision points
- 腳本報「無 manual 字幕」:先問用戶要不要接受自動字幕(品質較差,加
--asr-ok),或這支根本沒字幕 → 指向scripts/transcribe-techtalk-video.py做離線轉錄。 - 選到 asr:讀逐字稿時若發現明確的誤聽詞(人名、產品名、專有名詞,如
Cloud→Claude、Beat→Vite),直接 Edit 改正逐字稿,並在檔頭ASR 校準:註記改了哪些。無法確認原字的(疑似代號)保留原樣、在註記標出存疑,不要猜一個錯字填。不只列對照表給用戶。 - 要不要產 notes:以對話開頭「落地前先確認」的決定為準;該段對話已確認只存逐字稿,就不再每支問。
- 腳本報 429 重試耗盡:告訴用戶字幕端點限流中,過幾分鐘再試;不要改用 cookie 或 remote-components 繞(那些已知會失敗)。
原則
- 語言碼以腳本實際抓到的 track 為準,不猜。
- 查既有影片:先 notes 後 transcript。
- 逐字稿是機械層、notes 是判斷層;notes 不交給腳本做。
- positioning 衝突時以
career-positioning.md為準。 - 保持一支影片最多兩個檔,不堆 index / 系統;同頻道分組資料夾只是換落點,不算堆系統。