使用手冊

第 01 期 · 影片處理 / AI 感知工具

讓 Claude 真正看見這支影片。

開源 CLI claude-real-video 完整實戰手冊——場景感知關鍵幀、像素去重、Whisper 逐字稿,安裝、旗標總覽、Hacker News 實測討論與 Claude Code 技能整合實例。

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

huangchihhungleo/claude-real-video
星標
—
分支
—
授權
—
資料截至
—
閱讀時間
9 分
更新日期
開啟原始報告
GitHub Stars
923
示範片段保留幀數
26/58
--grid 影像壓縮倍數
9x
授權條款
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,是你自己的選擇。

  1. Fetch

  2. Extract

  3. Dedup

  4. Text

  5. Audio

  6. 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 都支援。

bash
# 只要關鍵幀 + 去重,不需要語音轉錄
pip install claude-real-video

# 加上 Whisper 語音轉錄
pip install "claude-real-video[whisper]"
作業系統安裝 ffmpeg 的指令
macOSbrew install ffmpeg
Linuxsudo apt install ffmpeg(或你發行版的套件管理器)
Windowswinget install Gyan.FFmpeg,或 choco install ffmpeg,或到 gyan.dev 下載後把 bin\ 加進 PATH

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

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

bash
pip install claude-real-video
mkdir -p ~/.claude/skills && cp -r skills/claude-real-video ~/.claude/skills/

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)裡有支持也有質疑。比起挑好聽的留言,這裡整理四個真正被戳到、而且作者本人有回應的點。

名字有 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

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

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

來源 · HN #48766005 · bonoboTP

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

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

來源 · HN #48766005 · octember

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

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: 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 張九宮格


ok: crv-out/frames/*.jpg  +  transcript.txt  +  MANIFEST.txt
ok: ~/notes/2026-07-06-pricing-strategy.md 已寫入


$ You › (Claude 讀取 MANIFEST.txt 與 grids/)


# [讀取 MANIFEST.txt — 逐字稿 + 每幀時間戳]
# [讀取 crv-out/grids/grid_02.jpg — 3×3 連環圖]


claude: Claude ›
  找到了。在 08:42,投影片切到定價比較表,
  逐字稿同時提到「三層訂閱,年繳打八折」。
  11:15 又出現一張加購方案的表,逐字稿沒講到細節,
  建議直接看 crv-out/frames/frame_0114.jpg 這張近拍。


ok: 已寫入 ~/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先看清楚這些

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

07進階路徑

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

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

進階玩法地圖

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

**2. 從 Python 直接呼叫。**不想走 CLI,可以 from claude_real_video import process,拿到 frame_count、transcript_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 上線發文