Communitygithub.com

ubeann/video-context

將影片網址或影片檔案轉換為 AI 代理可讀取的上下文,包含貼文文字、字幕或語音轉寫文字,以及去重後的影格。

video-context 是什麼?

Video context 是一項專為 AI 代理(如 Claude Code、Cursor 等)設計的技能,能將影片內容轉化為代理可理解的結構化資訊。它透過三條「通道」處理影片:貼文周圍的文字、影片中的語音(透過字幕或 Whisper 語音轉寫),以及視覺內容(去重後的影格)。支援 YouTube、X.com 等 yt-dlp 可處理的網站,也接受本機影片檔案。使用者可要求代理總結、說明影片內容或從中學習,輸出為一個包含 README.md 摘要、字幕/轉寫文字和時間戳排序影格的資料夾。此技能特別適合需要從影片中快速提取重點或進行多模態分析的開發者,並可與「learn」技能串聯,將學習內容整理成筆記。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ubeann/skills/tree/main/video-context

在你喜歡的 AI 中提問

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

說明文件

影片上下文

模型只能讀取文字和圖片,因此影片被拆解為三個通道:影片周圍的貼文、說了什麼(字幕,否則為語音轉寫)、以及展示了什麼(影格)。腳本會探測檔案並根據找到的內容進行路由。無聲的螢幕錄影,或含有音效的動畫,不會產生轉寫文字,影格就承載了一切。閱讀資料夾中標示為存在的通道,然後撰寫一段摘要,讓下一位閱讀者無需開啟影片即可了解內容。

步驟

1. 提取

sh ~/.claude/skills/video-context/references/extract.sh <網址或檔案路徑>

它會輸出資料夾路徑(預設為 /tmp/video-context/<slug>/)。預設值:每 3 秒一個影格,最多 60 個影格,間隔會自動調整以符合上限,下載解析度上限為 1080p。可調整的參數寫在腳本頂部:INTERVAL、MAX_FRAMES、MAX_HEIGHT、FORCE_TRANSCRIBE、WHISPER_MODEL、SUB_LANGS。若退出碼為 2,表示缺少某個工具;請從 references/setup.md 安裝後重新執行。

完成時,資料夾中的 README.md 會列出每個通道的狀態:存在、不存在、空白或略過。

2. 閱讀通道

先閱讀 README.md:貼文文字和通道表格會決定你要開啟哪些檔案。

  • 說的話。 完整閱讀 captions.txt 或 transcript.txt。自動字幕常會拼錯產品名稱;貼文文字和影格可以修正這些錯誤。
  • 展示的畫面。 按時間戳順序閱讀 frames/ 目錄。若超過 20 個影格,先讀每三個中的一個,再回頭讀問題相關的片段。當兩個通道都存在時,請比對轉寫文字的宣稱與影格的實際畫面:可能展示和螢幕顯示的內容不一致。

完成時,每個標示為存在的通道都已閱讀,且每個影格都已被開啟,或是被你命名為「已略過」的片段。

3. 總結

在資料夾中寫入 summary.md:

  • 一段文字:說明影片格式(示範、談話頭、動畫、螢幕錄影)以及影片要傳達的重點。
  • 一個時間軸清單,按 [m:ss] 排序,每個項目描述一件事(展示或解說),轉寫引文需逐字引用。
  • 一行文字說明哪些通道沒有承載資訊:例如無音訊、贊助片段、影格解析度不足以捕捉快速編輯。

完成時,每個時間軸項目都有對應的時間戳,可對應到一個影格檔案或一行轉寫文字,且「空白通道」那行與 README 表格一致。

4. 回覆

按照提問的規模回答問題,並提供資料夾路徑,讓使用者可以自行開啟影格。若問題是關於學習,則銜接到 learn 技能,將 summary.md 作為其文章分支的擷取來源。

工作習慣

  • 需要更細緻影格的片段,請單獨處理:先用 ffmpeg -ss <開始時間> -t <長度> -i clip.mp4 -c copy part.mp4 裁剪,然後以 INTERVAL=1 提取 part.mp4。對整個影片使用更小的間隔,會導致你需要閱讀的影格數量倍增。
  • 轉寫文字預設為英文。其他語言需要多語言模型;references/setup.md 中有說明。
  • Twitter 從未有過字幕,因此任何 x.com 上含有語音的剪輯都一定會執行 Whisper。預計花費約該剪輯長度五分之一的时间。

相關技能