Watch Video

io.github.marwanm7moud由 GitHub 帳號 marwanm7moud 發布v0.2.0更新於 Nov 7, 2026

Let an AI watch a video: timestamped transcript, scene-selected keyframes and exact frames. Local.

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理「觀看」本機檔案或網址影片,取得附時間戳的轉錄文字與場景挑選的關鍵影格,並可再取精確影格。

可以做什麼
  • 取得影片概覽:中繼資料、章節、完整轉錄文字與關鍵影格拼圖,可選擇開啟 OCR 讀取畫面文字
  • 依指定時間點擷取精確影格,或在某段時間內平均取格
  • 偵測硬切鏡頭與每分鐘切換次數,用來判斷節奏或畫面變化
  • 讀取某段轉錄文字,或依詞語、片語搜尋轉錄並回傳時間戳
  • 檢查偵測到的工具、GPU 與目前使用的轉錄設定
適用情境
適合讓助理摘要影片內容或回答關於影片的問題,包括簡報、程式碼、圖表、介面等畫面資訊;也適合私密錄影或不希望上傳到雲端服務的情況。
執行需求
以本機 Python 套件執行(需 Python 3.10+),PATH 中需有 ffmpeg 與 ffprobe,並以 stdio 方式註冊。不需要 API 金鑰或帳號。首次轉錄會下載約 650 MB 的 Parakeet 模型;Whisper 與 OCR 為選用元件。選用設定包括 VIDEO_MCP_CACHE、VIDEO_MCP_LANG、VIDEO_MCP_THREADS 與 VIDEO_MCP_AVX512。
安裝前請注意
影格與轉錄結果會快取在本機快取目錄,佔用磁碟空間,需自行清理。在 CPU 上轉錄長影片負載較重;設定 VIDEO_MCP_AVX512=1 會造成非常高的持續負載。影格是抽樣取得,轉錄可能聽錯人名與術語,畫面上的精確文字應以高解析影格確認。僅處理你有權存取與處理的影片,並遵守各網站條款與著作權。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Watch Video,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

watch-video

Let Claude (or any MCP client) watch a video. Give it a local file or a URL (YouTube and 1,500+ other sites via yt-dlp) and it gets a timestamped transcript plus a handful of scene-selected keyframes, then drills into exact frames only when needed. No cloud transcription, no API keys.

text
> Watch https://www.youtube.com/watch?v=jNQXAC9IVRw and tell me what he says about the elephants.
$ video-cli overview https://www.youtube.com/watch?v=jNQXAC9IVRw --max-frames 8# Me at the zooduration: 00:19transcript: platform-subs:en, language=en, 6 segments, took 0.4skeyframes: 3 scene-selected at 00:00, 00:05, 00:11total time: 6.7s
## Transcript[00:01] All right, so here we are, in front of the elephants[00:05] the cool thing about these guys is that they have really... really really long trunks and that's cool[00:16] and that's pretty much all there is to sayIMAGE: ~/.cache/video_mcp/Youtube_jNQXAC9IVRw/sheets_8/sheet_01.jpg
Claude: He stands in front of the elephants (00:01) and says the cool thing about them istheir really long trunks (00:05). That is the whole video (00:16).

Why this one

watch-videoCloud video APIs (e.g. Gemini)Transcript-only tools
Sees the screen (code, slides, charts, UI)Yes: keyframes, hi-res frames, OCRYesNo
Runs locally, nothing uploadedYesNo: the video goes to the providerVaries
API key or accountNoneRequired, billed per useVaries
Videos without captionsLocal Parakeet / WhisperYesOften fails
Token cost of the visual pass~20 frames per contact sheet (cost of ~1.5 images)Billed by video lengthNone (no visuals)
Private recordings (meetings, bug repros)Safe: never leave the machineUploadedVaries

It ships as two parts:

  • video MCP server with seven tools (below).
  • watch-video skill that teaches Claude the cheap-first workflow: overview, then frames, then ranges.

How it works

StepWhat happens
TranscriptPlatform subtitles if the video has them (seconds), else Parakeet TDT 0.6B v3 (int8, CPU, 25 European languages), else faster-whisper large-v3-turbo (other languages, GPU or language="auto").
KeyframesDecodes only keyframes at thumbnail size, drops repeats and static slides, then fills the largest time gaps. The selection adapts to how much the video changes (screencast vs. action).
Contact sheetsLabelled frames tiled into grids: about 20 frames for the token cost of 1.5 full frames. Black bars are cropped automatically.
Drill-downget_frames seeks to exact timestamps at 1280 px (readable code and charts). For URLs it seeks into the stream without downloading the whole video.

Everything is cached under ~/.cache/video_mcp, so repeat calls are instant.

Measured on a mid-range CPU (i5-11400, no GPU): 35.7-minute local video overview in about 2.6 minutes; YouTube video with subtitles in about 7 seconds; a drill-down frame in about 0.5 seconds.

Install

Requirements: Python 3.10+ and ffmpeg (including ffprobe) on your PATH.

Claude Code: one command (plugin)

Installs the MCP server and the skill together. Needs uv for uvx.

text
/plugin marketplace add marwanm7moud/watch-video/plugin install watch-video@watch-video

Any agent: package, server, skill

bash
pipx install watch-video-mcp          # or: uv tool install watch-video-mcp / pip install watch-video-mcp# optional extras: Whisper (non-European languages / GPU) and OCR (on-screen text as text)pipx install "watch-video-mcp[whisper,ocr]"# latest from GitHub instead of PyPI:pip install git+https://github.com/marwanm7moud/watch-video

No install needed to try the CLI: uvx --from watch-video-mcp video-cli hw.

Install ffmpeg with winget install Gyan.FFmpeg (Windows), brew install ffmpeg (macOS) or sudo apt install ffmpeg (Linux). The first transcription downloads the Parakeet model (about 650 MB).

Register the MCP server

Claude Code:

bash
claude mcp add video --scope user -- video-mcp

Claude Desktop (claude_desktop_config.json) or any other MCP client:

json
{ "mcpServers": { "video": { "command": "video-mcp" } } }

If video-mcp is not on your PATH, use the full path to the executable or python -m video_mcp.server.

Install the skill

The skill works with or without the MCP server: it falls back to video-cli and installs it on first use. Copy the skill folder so your agent knows when and how to use the tools:

bash
# macOS / Linuxmkdir -p ~/.claude/skills && cp -r skills/watch-video ~/.claude/skills/# Windows (PowerShell)Copy-Item -Recurse skills\watch-video $HOME\.claude\skills\

Then ask Claude: "Watch https://youtu.be/... and summarize it", or "At what point do they explain the stop-loss, and what does the chart show then?"

Tools

ToolUse
video_overview(source, max_frames=40, ocr=False)Start here: metadata, chapters, full transcript, contact sheets. ocr=True adds on-screen text.
get_frames(source, timestamps, hi_res=True)Exact frames ("12:30", "1:02:05" or seconds), up to 20.
scan_range(source, start, end, count=12)Evenly spaced frames in one sheet, to follow motion or a demo.
find_cuts(source, start, end, threshold=0.2)Hard cuts (shot or screen changes) and cuts per minute, for pacing.
get_transcript(source, start, end)Transcript slice.
search_transcript(source, query)Timestamped hits for any of the words, exact phrase first; plus on-screen text after an ocr=True overview.
check_hardware()Detected tools, GPU and the transcription profile in use.

Command line

The same operations work without MCP:

bash
video-cli overview video.mp4 --max-frames 16video-cli overview demo.mp4 --ocr          # also read code/slides on screenvideo-cli frames https://youtu.be/... 12:30 13:05video-cli range video.mp4 10:00 10:30 --count 12video-cli cuts ad.mp4                       # hard cuts + cuts per minutevideo-cli search video.mp4 "stop loss"video-cli hw

Configuration

VariableDefaultEffect
VIDEO_MCP_CACHE~/.cache/video_mcpCache directory (delete it to reclaim space).
VIDEO_MCP_LANGenDefault transcription language; auto detects it with Whisper.
VIDEO_MCP_THREADS4 (CPU)Threads for CPU transcription.
VIDEO_MCP_AVX512unsetSet to 1 to let Whisper use AVX-512 (faster, but a very heavy sustained load).

On CPU the server runs below normal priority, one heavy job at a time, with Whisper held to AVX2, so a long transcription does not freeze your desktop.

Limitations

  • English is assumed unless you pass language. Parakeet covers 25 European languages on CPU (language="de", "fr", "es", ...). Other languages (Arabic, Chinese, Japanese, Hindi, ...) need Whisper, which is slow on CPU.
  • Frames are sampled, not every frame is analysed; the transcript can mishear names and terms. The skill tells Claude to cite timestamps and confirm exact on-screen text with a hi-res frame.
  • Use it only on videos you are allowed to access and process; respect each site's terms and copyright.

Development

bash
pip install -e ".[dev]"ruff check .pytest

License

MIT. See LICENSE.

來源:README.md,提交 399bda3

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.2.0最新Oct 31, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分