{"id":"12a125a4-b903-4561-9455-002ed08acddb","slug":"video-watcher-mcp","kind":"mcp","name":"video-watcher-mcp","summary":"MCP server that lets Claude watch, transcribe, and answer questions about videos from YouTube/Instagram/Facebook","owner":"dr-ashraf-s-MCP-LABS","repoUrl":"https://github.com/dr-ashraf-s-MCP-LABS/video-watcher-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-08-19T20:27:45.000Z","addedAt":"2026-10-21T06:37:53.891Z","logoUrl":"https://avatars.githubusercontent.com/u/318773196?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["design-media","cloud-infra","memory-knowledge"],"tags":["claude","transcription","video","whisper"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T02:58:10.240Z","sample":false,"url":"https://conduits.dev/tools/video-watcher-mcp","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# video-watcher MCP server\n\nAn MCP server that lets Claude Desktop \"watch\" videos from YouTube, Instagram,\nFacebook, or a direct video URL (mp4/webm/etc), and answer questions about\nthem.\n\n## What it does\n\nFor any supported URL, the server:\n1. Downloads the video with `yt-dlp` (works for YouTube, Instagram, Facebook,\n   and hundreds of other sites, plus falls back to a raw HTTP download for\n   plain file URLs).\n2. Extracts a transcript — YouTube captions via `youtube-transcript-api` if\n   available, otherwise audio transcription via `faster-whisper`.\n3. Extracts 5 key frames (sampled across the video's timeline) as base64 JPEGs\n   using OpenCV.\n\nResults are cached in memory per URL for the life of the process, so calling\nmultiple tools on the same video only downloads/transcribes it once.\n\n## Tools\n\n- **`watch_video(url)`** — full analysis: title, duration, transcript, frames.\n- **`summarize_video(url)`** — ~200-word summary + bullet list of main points.\n- **`answer_about_video(url, question)`** — transcript + frames so Claude can\n  answer a specific question about the video.\n\n## Setup\n\n```bash\ncd D:\\Projects\\video-mcp-server\npip install -r requirements.txt\n```\n\nYou'll also need `ffmpeg` on your `PATH` (required by both `yt-dlp` for\nmuxing and `faster-whisper` for audio decoding). On Windows, install via\n`winget install ffmpeg` or download from https://ffmpeg.org and add it to PATH.\n\nTest the server standalone first:\n\n```bash\npython video_mcp_server.py\n```\n\nIt should sit waiting on stdio (no output = good; it logs to stderr).\n\n## Connect to Claude Desktop\n\nEdit `%APPDATA%\\Claude\\claude_desktop_config.json` (create it if it doesn't\nexist) and merge in:\n\n```json\n{\n  \"mcpServers\": {\n    \"video-watcher\": {\n      \"command\": \"python\",\n      \"args\": [\"D:\\\\Projects\\\\video-mcp-server\\\\video_mcp_server.py\"]\n    }\n  }\n}\n```\n\nAdjust the path if you cloned this elsewhere. If `python` isn't on PATH inside\nClaude Desktop's environment, use the full interpreter path instead, e.g.\n`\"C:\\\\Users\\\\<you>\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python311\\\\python.exe\"`.\n\n**Fully quit and reopen Claude Desktop** after editing the config (closing the\nwindow is not enough on Windows either — use the system tray icon to Quit).\n\n## Testing it\n\nTry these once connected:\n\n- `watch_video(\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\")`\n- `summarize_video(\"https://www.youtube.com/shorts/<some-short-id>\")`\n- `answer_about_video(\"https://www.instagram.com/reel/<reel-id>/\", \"What product is being promoted?\")`\n\nAsk Claude directly, e.g.: *\"Watch this video and summarize it: <url>\"*\n\n## Notes & limitations\n\n- **Instagram**: public posts/reels work via `yt-dlp`. Private accounts or\n  posts requiring login will fail with a clear error — this server does not\n  store or use Instagram credentials. `instagrapi` is listed as an optional\n  dependency for future extension but is not required by the current code\n  path.\n- **Facebook**: public videos only; the same login-wall limitation applies.\n- **Whisper fallback**: the first call that needs transcription will download\n  the `base` Whisper model (~150MB) on first use.\n- **Rate limits**: platforms may throttle repeated requests; the server\n  surfaces a clear \"rate limited, try again later\" error rather than hanging.\n- **Storage**: downloaded videos are written to a temp cache directory\n  (`%TEMP%\\video_mcp_cache`) and are not automatically cleaned up — clear it\n  periodically if disk space matters.\n"}