實戰手冊 · Field Manual 2026 夏季號
github.com/HUANGCHIHHUNGLeo/claude-real-video · 923 ★
v
第 01 期 · 影片處理 / AI 感知工具

讓 Claude
真正看見
這支影片。

claude-real-video 是一支開源 Python CLI:抓場景真正切換的關鍵幀(不是固定頻率取樣)、用滑動視窗做像素級去重、轉錄語音字幕,全部在本機執行,輸出一份任何 LLM 都能直接讀的資料夾。上線三天登上 Hacker News 首頁,同時支援 Claude Code 技能整合。這份手冊帶你安裝、看懂每個旗標、複盤 HN 上的真實質疑,並走一次完整的分析流程。

923
GitHub Stars
26/58
示範片段保留幀數
9x
--grid 影像壓縮倍數
MIT
授權條款
01
這到底是什麼

不是轉檔工具,
是給 LLM 的一雙眼睛

大部分 AI 工具其實沒有真的「看」影片。把 YouTube 連結貼給 ChatGPT,它讀的是逐字稿,不是畫面。Claude 直接不收影片檔案。連原生支援影片的 Gemini,也得先把整支片傳上 Google 的伺服器,並以固定的 1fps 頻率取樣——快速剪接的鏡頭照樣會漏看。

claude-real-video(CLI 指令 crv)換一種做法,而且全部在本機執行:給它一個網址或本機檔案,它抓的是真正發生場景變化的畫面,而不是固定頻率的配額;丟掉像素幾乎沒變的重複幀;轉錄音軌;最後打包成一份任何 LLM 都能讀的資料夾——關鍵幀 JPG、逐字稿、外加一份 MANIFEST.txt 摘要。

作者在 Hacker News 上線時說得直白:「我受夠了沒有一個 LLM 真的『看得到』影片——Claude 不收影片檔、ChatGPT 只讀逐字稿、Gemini 固定 1fps 取樣。」工具本身只做本機端的抽幀跟去重,決定要不要把這些幀貼給哪個 LLM,是你自己的選擇。

crv 處理流程 · 六個階段
Fetch Extract Dedup Text Audio Manifest
Same 58-second clip: fixed 1 fps sampling = 58 frames.
crv keeps the 26 that actually differ — and --grid packs
them into 3 contact sheets. Fewer tokens, nothing missed.
— claude-real-video README,同一段示範片段的實測對照
02
安裝

一行 pip install,
加一支 ffmpeg。

核心套件是純 Python,pip 直接裝。語音轉錄要另外加 [whisper] extra,而且 ffmpeg / ffprobe 不能用 pip 裝,要用系統套件管理器另外裝一次。Python 需要 3.10 以上,macOS、Windows、Linux 都支援。

# 只要關鍵幀 + 去重,不需要語音轉錄 pip install claude-real-video # 加上 Whisper 語音轉錄 pip install "claude-real-video[whisper]"
作業系統 安裝 ffmpeg 的指令
macOS brew install ffmpeg
Linux sudo apt install ffmpeg(或你發行版的套件管理器)
Windows winget install Gyan.FFmpeg,或 choco install ffmpeg,或到 gyan.dev 下載後把 bin\ 加進 PATH

裝進 Claude Code,自己主動去看影片

如果你平常用 Claude Code,可以把它裝成技能——之後貼一個影片連結進對話,Claude 會自己判斷要不要呼叫 crv 去抽幀分析,不用你手動下指令。

pip install claude-real-video mkdir -p ~/.claude/skills && cp -r skills/claude-real-video ~/.claude/skills/
ffmpeg 是唯一容易漏掉的一步。pip install 成功不代表可以直接用——先跑一次 ffmpeg -version 確認它真的在 PATH 上,否則 crv 第一次執行會在抽幀階段直接失敗。第一次做語音轉錄還會自動下載約 139MB 的 Whisper base 模型,記得留網路時間。
03
旗標總覽

每個旗標
對應一個處理階段

crv 的旗標不是隨意堆出來的選項,而是精準對應 Fetch → Extract → Dedup → Text → Audio → Manifest 六個階段。下表依階段分組。不裝 [whisper]、什麼旗標都不加,直接 crv <url> 也能跑——多數情況只需要記得 --grid--why 這兩個。

Fetch · 01
<url-or-path>
影片來源
YouTube、Instagram、TikTok 連結交給 yt-dlp;本機檔案路徑則直接複製處理。
Fetch · 02
--cookies
登入內容存取
傳入 Netscape 格式的 cookie 檔,讀取自己有權限存取的登入限定影片。
Fetch · 03
--cookies-from-browser
瀏覽器登入狀態
直接讀 chrome / safari / firefox / edge 現有的登入 session,不用手動匯出 cookie 檔。
Extract · 04
--scene
場景敏感度
預設 0.30。數值越低,判定為「場景改變」的門檻越鬆,抓到的幀就越多。
Extract · 05
--fps-floor
密度下限
預設每 1 秒至少保留一幀,確保靜態畫面裡緩慢的文字/圖表變化不會被整段跳過。
Extract · 06
--max-frames
幀數硬上限
預設 150。長影片的安全閥,避免一次吐出上千張圖塞爆 LLM 的 context。
Dedup · 07
--dedup-threshold
去重門檻
預設 8%。像素變化低於這個百分比就視為重複幀丟棄,數值越高、保留的幀越少。
Dedup · 08
--dedup-window
去重比對視窗
預設比對前 4 張已保留的幀。A-B-A 式的訪談鏡頭切回去,不會把同一顆鏡頭再送一次。
Dedup · 09
--grid
3×3 連環圖
把連續關鍵幀打包成九宮格,模型讀到的是有先後順序的畫面,而不是散落的靜態圖,張數再砍約 9 倍。
Text · 10
--lang / --whisper-model
語音轉錄
影片本身有字幕就優先用字幕,沒有才跑 Whisper;可選 tiny 到 large,拿速度換準確度。
Text · 11
--no-transcribe
略過轉錄
純看畫面、不需要逐字稿時關掉轉錄,省下 Whisper 這一段處理時間。
Audio · 12
--keep-audio
完整音軌
另存一份 audio.m4a,給聽得懂聲音的模型(GPT-4o、Gemini)取用配樂與語氣,逐字稿只有文字沒有聲音。
Manifest · 13
--why
分析焦點
寫進 MANIFEST.txt,告訴模型你為什麼在看這支片,分析從通用摘要變成有目的的觀察。
Manifest · 14
--kb
知識庫沉澱
把分析結果存成帶日期的 Markdown,寫進你自己的筆記資料夾,不會跟著 crv-out 一起被覆蓋掉。
Manifest · 15
--viewer
本機檢視器
產生 viewer.html——影片、關鍵幀網格、逐字稿一次呈現,雙擊開啟,不需要網路或額外安裝。
Manifest · 16
--report
決策視覺化
保留被丟棄的幀到 dropped/,產出 report.html 秀出每一次去留判斷的差異百分比,方便微調參數。

不同影片類型,該搭哪組旗標?

你在看哪種影片 建議旗標組合 為什麼
YouTube 教學 / 演講(語音為主) --lang en --grid 內容主要靠聽的,畫面變化少,--grid 把幀數再壓低一截
短影音 / Reels / TikTok(快剪) --dedup-window 6 --grid 快剪常常切回同一顆鏡頭,拉大比對視窗才不會重複送幀
純畫面分析,不需要逐字稿 --no-transcribe --report 省下 Whisper 處理時間,同時能看清楚每一幀的去留判斷
需要登入才能看的自家內容 --cookies-from-browser chrome 直接讀本機瀏覽器的登入狀態,不用手動匯出 cookie 檔
04
實測討論 · Hacker News

上線三天,
問到最痛的四件事。

作者 cortexosmain 在 Hacker News 上直接發文,同一則討論串(#48766005)裡有支持也有質疑。比起挑好聽的留言,這裡整理四個真正被戳到、而且作者本人有回應的點。

01

名字有 Claude,但工具跟廠商無關

zitterbewegung 跟 walrus01 都建議拿掉名字裡的「Claude」,理由是這工具本質是通用的影片前處理器。作者當場回應:「Took this — pip install llm-real-video works now, same tool. Kept the original repo name so existing links don't break.」

來源 · HN #48766005 · zitterbewegung、walrus01、cortexosmain
02

「留在你電腦上」只到抽幀那一步為止

bonoboTP 指出文件裡「stays on your machine」的說法容易誤導:一旦你把抽出來的幀貼給 Claude,幀就會送到 Anthropic。工具本身確實只在本機處理,但之後要不要餵給哪個 LLM,是使用者自己的選擇,不是工具幫你保密。

來源 · HN #48766005 · bonoboTP
03

關鍵幀不是影片——這是誠實的邊界

octember 的評論很直接:「keyframes are not videos. Motion, object permanence, are not things Claude can infer from a set of images.」一組排好的靜態圖能替代逐字稿加畫面摘要,但推不出動作本身的物理連貫性。

來源 · HN #48766005 · octember
04

貴不貴,要看你拿哪個模型看

fzysingularity 認為用 Claude 逐幀看影片「terribly expensive」,token 消耗遠高於原生支援影片的 Gemini 或本地 VLM。作者回應:這工具是為「原生看不了影片」的模型而生——Claude、ChatGPT 網頁版、本地模型;Gemini 本身就能原生吃 1fps 影片,沒必要繞這一圈。

來源 · HN #48766005 · fzysingularity、cortexosmain
05
使用實例

裝成 Claude Code 技能後,
貼連結就會自己去

場景:你把一支 YouTube 產品發表會連結貼進 Claude Code,想知道對方提到的定價策略是什麼。裝好 skills/claude-real-video 後,Claude 會自己判斷要呼叫 crv,而不用你手動打指令。

~/projects/research · claude code · claude-real-video v0.5.2
You › https://youtu.be/XXXXXXXXXXX 這支發表會,幫我找出他們的定價策略, 結果存到我的筆記資料夾。
[matched skill: claude-real-video · 偵測到影片連結] [loaded ~/.claude/skills/claude-real-video/SKILL.md]
Claude › 我沒辦法直接讀影片檔,先用 crv 把它轉成關鍵幀 + 逐字稿。
$ crv "https://youtu.be/XXXXXXXXXXX" -o crv-out --grid \ --why "find the pricing strategy" --kb ~/notes
[Fetch] yt-dlp 下載中 · 480p 已足夠分析畫面 [Extract] 場景偵測 + fps-floor=1.0 · 抓到 71 個候選幀 [Dedup] threshold=8% window=4 · 71 → 24 幀 [Text] 無內嵌字幕 · 改跑 Whisper base · lang=auto → en [Manifest] MANIFEST.txt 已寫入 --why 焦點 · crv-out/grids/ 3 張九宮格
crv-out/frames/*.jpg + transcript.txt + MANIFEST.txt ~/notes/2026-07-06-pricing-strategy.md 已寫入
You › (Claude 讀取 MANIFEST.txt 與 grids/)
[讀取 MANIFEST.txt — 逐字稿 + 每幀時間戳] [讀取 crv-out/grids/grid_02.jpg — 3×3 連環圖]
Claude › 找到了。在 08:42,投影片切到定價比較表, 逐字稿同時提到「三層訂閱,年繳打八折」。 11:15 又出現一張加購方案的表,逐字稿沒講到細節, 建議直接看 crv-out/frames/frame_0114.jpg 這張近拍。
已寫入 ~/notes/2026-07-06-pricing-strategy.md,含兩個時間戳截圖引用。
This tool is for everything that can't [ingest video natively] —
Claude, ChatGPT web, local models — it turns the video into
frames + transcript on your machine so any of them can read it.
— cortexosmain,Hacker News #48766005

這個流程為什麼成立

Claude 本身讀不了影片檔,--why 讓它不是漫無目的地摘要,而是帶著「找定價策略」這個焦點去讀 MANIFEST.txt;--grid 讓它看到的是有先後順序的連環圖,不是一堆散圖;--kb 則讓結果離開 crv-out、進到你自己會再打開的筆記裡。三個旗標分別解決「看什麼、怎麼看、看完存哪」三個各自獨立的問題。

06
先看清楚這些

不是影片理解。
知道邊界再上路。

  • 關鍵幀不是影片本身。它能讓 LLM 看到畫面內容,但推不出動作的物理連貫性——連續的鏡頭移動、手勢的完整軌跡、物件恆存性,這些都不是一組靜態圖能還原的。這點 Hacker News 上被質疑過,也是誠實的技術邊界,不是等修的 bug。
  • 「本機處理」只到抽幀那一步。ffmpeg 抽幀、去重、Whisper 轉錄都在你自己的機器上跑;但只要你把幀貼進 Claude、ChatGPT 或任何雲端 LLM,那些幀就會傳到那個供應商——工具本身不會替你決定要不要分享。
  • 拿哪個模型看,成本差很多。Gemini 原生支援影片、伺服器端 1fps 取樣,對長影片可能比走「抽幀 → 貼給 Claude」更省 token。這工具解決的是「原生看不了影片的模型」這個問題,不是所有情境下最便宜的路。
  • ffmpeg 不是 pip 裝的。pip install 成功不代表能跑——沒裝 ffmpeg / ffprobe,crv 在抽幀階段就會直接失敗。先跑 ffmpeg -version 確認再開始。
  • 第一次轉錄要等下載。沒指定 --whisper-model 時預設用 base,第一次執行會自動下載約 139MB 的模型檔案,確保有網路。
  • 重跑會覆蓋輸出目錄。同一個 -o 目錄再跑一次 crv,舊的 frames / transcript / manifest 會直接被蓋掉,想保留就先搬走或改用 --kb 存副本。
  • --cookies 只該用在你自己有權限的內容。登入限定影片的 cookie 檔或瀏覽器 session,是給你存取自己帳號能看的內容,不要拿去繞過別人帳號的存取限制,更不要把 cookie 檔提交進版本控制。
  • 免費版看不到「怎麼拍的」。鏡頭運動分類、剪輯節奏、聲音情緒這類分析屬於作者另外販售的付費版 crv Pro(一次性 19 美元),免費版的範圍就是幀、逐字稿、manifest,官方文件對此寫得很清楚。
07
進階路徑

從 CLI 玩具,
接進你自己的管線

crv 不只是一個獨立指令,它也是一支可以直接 import 的 Python 套件,而且從單支影片分析可以往上疊到批次處理、自己的知識庫、甚至完全不碰 LLM 的一般用途。

進階玩法地圖

1. 用 --report 視覺化調參。不確定 --scene--dedup-threshold 該設多少時,加 --report 生成 report.html,對照每一次去留判斷的差異百分比,再回頭微調。

2. 從 Python 直接呼叫。不想走 CLI,可以 from claude_real_video import process,拿到 frame_counttranscript_path 這類物件,接進自己的批次腳本或資料管線。

3. 裝成 Claude Code 技能常駐。skills/claude-real-video 複製進 ~/.claude/skills/ 後,以後貼影片連結進對話,Claude 會自己判斷要不要呼叫 crv,不用每次手動打指令。

4. 用 --keep-audio 餵給聽得懂聲音的模型。逐字稿只留下文字,語氣、配樂、環境音都不在裡面——如果下游模型是 GPT-4o 或 Gemini 這類支援音訊輸入的模型,加這個旗標把完整音軌一起送過去。

5. 需要拍攝手法分析,才考慮付費版。免費版的邊界很清楚:幀、逐字稿、manifest。鏡頭運動分類、剪輯節奏、聲音情緒時間軸屬於另一個付費產品 crv Pro,不是這支開源 CLI 的範圍。

最該讀的三份延伸閱讀

README.md——完整旗標表、Why not fixed-interval sampling 的技術對照、Python API 範例。
skills/claude-real-video/SKILL.md——Claude Code 技能整合的完整步驟。
Hacker News #48766005——上線討論串,命名爭議、隱私措辭、成本質疑都在這裡,作者本人也有逐條回應。

Hi HN! I built this because I was frustrated that no LLM
actually "sees" a video — Claude won't accept video files,
ChatGPT reads the transcript only, and Gemini samples at a
fixed 1fps (missing fast cuts, over-sampling static slides).
— cortexosmain,claude-real-video 作者,Hacker News 上線發文