
Claude Video Vision
Plugin让 Claude Code 看懂视频:用 ffmpeg 抽帧并转写带时间戳的音频,可分析本地视频或 YouTube 链接,用于审片、总结课程录像、找画面文字。需 Node.js 20+ 与 ffmpeg(YouTube 另需 yt-dlp);转写可用免费本地 Whisper 或 Gemini、OpenAI API Key。
Claude Code Video Vision
Give Claude the ability to watch and understand videos.
A Claude Code plugin that extracts frames via ffmpeg and processes audio via multiple backends (Gemini API, local Whisper, or OpenAI API). Claude receives frames as images and audio transcription with timestamps — the plugin is a perception layer, not an interpretation layer.
Features
- Multimodal perception — Claude sees video frames directly and reads audio transcriptions with timestamps
- YouTube URL support — Pass a YouTube URL directly; the MCP server downloads it with
yt-dlp, preserving source metadata and captions for context - Flexible backends — Choose between cloud APIs or fully local processing
- Adaptive extraction — Claude adjusts fps, time range, and resolution based on your question
- Auto-installation — Whisper models download automatically on first use
- Interactive setup wizard —
/setup-video-visionwalks you through configuration
Quick Start
1. Install the plugin
Inside Claude Code, run these commands one at a time:
/plugin marketplace add https://github.com/jordanrendric/claude-video-vision
Then:
/plugin install claude-video-vision
The MCP server will auto-install via npx from npm on first use — no build step required.
Alternative: local development
git clone https://github.com/jordanrendric/claude-video-vision.git
claude --plugin-dir /path/to/claude-video-vision
2. Configure
Inside Claude Code, run the interactive wizard:
/claude-video-vision:setup-video-vision
It will walk you through backend selection, whisper configuration (if local), frame options, and dependency verification.
Usage
Slash command
/watch-video path/to/video.mp4
/watch-video tutorial.mp4 "what language is used in this tutorial?"
/watch-video https://www.youtube.com/watch?v=... "summarize this video"
Conversational
Just mention a video file or YouTube URL — Claude will detect it:
"analyze this video for me: ~/Downloads/demo.mp4"
"take a look at the first second of ~/videos/bug-report.mov"
"summarize this YouTube Short: https://www.youtube.com/shorts/..."
Claude adapts parameters automatically:
- "the first second" → extracts at original fps from
00:00:00to00:00:01 - "summarize this 1h lecture" → low fps, full duration
- "what text is on screen at 1:30?" → high resolution, narrow time window
Backends
| Backend | Audio processing | Cost | Setup |
|---|---|---|---|
| Gemini API | Native (speech + non-speech events) | Free tier: 1500 req/day | GEMINI_API_KEY env var |
| Local (Whisper) | whisper.cpp or Python openai-whisper | Free, fully offline | brew install whisper-cpp + auto model download |
| OpenAI API | OpenAI Whisper API | Paid per usage | OPENAI_API_KEY env var |
All backends extract video frames via ffmpeg — Claude always has direct visual access.
Architecture
┌───────────────────────────────────────────────────────┐
│ Claude Code (your session) │
│ │
│ /watch-video ──→ Skill: video-perception │
│ │ │
│ ▼ │
│ MCP tool: video_watch │
│ │ │
└────────────────────────┼──────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ MCP Server (Node.js) │
│ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ ffmpeg │ │ Audio backend│ │
│ │ frames │ ║ │ (parallel) │ │
│ └──────────┘ └──────────────┘ │
│ │ │ │
└───────┼─────────────────┼──────────┘
▼ ▼
base64 images transcription
+ timestamps + audio events
│ │
└────────┬────────┘
▼
Claude receives both
Requirements
- Node.js 20+ (for the MCP server)
- ffmpeg (auto-detected, install instructions provided by setup wizard)
- yt-dlp (optional, required only for YouTube URLs;
brew install yt-dlpon macOS) - Backend-specific:
- Gemini API: free API key from ai.google.dev
- Local:
brew install whisper-cpp(macOS) or equivalent - OpenAI: API key from OpenAI
MCP Tools
The plugin exposes 6 MCP tools:
video_watch— Extract frames + process audio (main tool)video_analyze— Analyze video structure with ffmpeg filters before extractionvideo_detail— Drill into specific cached or newly extracted momentsvideo_info— Get video metadata without processingvideo_configure— Change settingsvideo_setup— Check and guide dependency installation
Slash Commands
/watch-video <path> [question]— Analyze a video/setup-video-vision— Interactive configuration wizard
Configuration
Settings are stored in ~/.claude-video-vision/config.json:
{
"backend": "local",
"whisper_engine": "cpp",
"whisper_model": "auto",
"whisper_at": false,
"frame_mode": "images",
"frame_format": "jpeg",
"frame_resolution": 512,
"default_fps": "auto",
"max_frames": 100,
"frame_describer_model": "sonnet",
"enable_index": false,
"session_max_age_days": 7,
"downloads_max_age_days": 7
}
frame_format can be jpeg, png, or webp. jpeg remains the default for backwards compatibility; png is useful for screen recordings where text and sharp UI edges should stay lossless.
Whisper models auto-download to ~/.claude-video-vision/models/ on first use. Available: tiny, base, small, medium, large-v3-turbo, large-v3, auto (picks best for your RAM).
YouTube Transcripts
For YouTube URLs, the server uses this transcript order:
- Manual YouTube subtitles when an English track is available.
- YouTube automatic captions when manual subtitles are not available.
- The configured audio backend when captions are missing, empty, or cover too little of a longer video.
Audio results label provenance with transcription_source, for example youtube_subtitles or youtube_auto_captions, so Claude can treat manual subtitles as stronger evidence than auto-captions.
Status
v1.0.0 — Initial release. Tested on macOS (Apple Silicon) with Local backend (whisper.cpp).
License
MIT — see LICENSE.
Author
Jordan Vasconcelos
- GitHub: @jordanrendric
- LinkedIn: jordanvasconcelos
- Instagram: @jordanvasconcelos__
- X/Twitter: @jordanrendric
Star History
相關資源

Buzz
CLI基于 Whisper 的离线语音转写与翻译工具,录音不出本机,用 buzz add 命令把讲座、访谈、会议录音导出为 TXT、SRT、VTT,适合老师整理课堂录音、律师整理会见记录。pip 安装需 Python 3.12 和 FFmpeg,另有桌面版;转写结果需人工核对。
chidiwilliams/buzz22k
whisper-ctranslate2
CLI本地语音转写工具,与 OpenAI Whisper 命令行兼容但更快更省内存,可输出 SRT / VTT 字幕与文本,支持麦克风实时转写,适合整理课堂录音、访谈与会议。需要 Python,首次运行自动下载模型;区分说话人需另装 pyannote.audio 并提供 Hugging Face Token。
Softcatala/whisper-ctranslate21.4k
YouTube MCP Server
MCP用 yt-dlp 抓取 YouTube 视频字幕交给 agent,直接说「总结这个视频」就能得到要点,适合老师备课时整理教学视频、研究者和创作者快速了解视频内容。无需 API Key,但本机要先装 yt-dlp(Homebrew 或 WinGet 均可)和 Node.js,并能正常访问 YouTube。
anaisbetts/mcp-youtube551
BibiGPT Skill
SkillBibiGPT 官方技能:把 B 站、YouTube、播客或本地音视频交给 agent,生成摘要、带时间戳字幕、分章节要点和思维导图,适合听课复习和整理研究笔记。需要 BibiGPT 账号(免费用户每日次数和时长有限),并安装其桌面端(含 bibi 命令行)或配置 API Key。
JimmyLv/bibigpt-skill129
pyVideoTrans
CLI视频翻译与配音一站式工具:串起语音识别、字幕翻译、多角色 AI 配音与音画合成,可接 Faster-Whisper、DeepSeek、Edge-TTS 等本地或在线模型;cli.py 支持无界面批处理。需要 FFmpeg。
jianchang512/pyvideotrans19.4k
YouTube Clipper Skill
Skill下载 YouTube 视频与字幕,由 AI 按内容划分几分钟粒度的语义章节,选段后精确剪辑、翻译成中英双语字幕并烧录,同时生成小红书、抖音等平台文案。依赖 yt-dlp 与带 libass 的 FFmpeg。
op7418/Youtube-clipper-skill2.2k