watch-video

Transcribe and analyze videos from YouTube, Loom, Vimeo, and local files at selectable depth modes.

Updated Aug 13, 2026
One-click install
npx skills add https://github.com/imMamdouhaboammar/marketing-skills --skill watch-video-immamdouhaboammar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: watch-video
Source: https://github.com/imMamdouhaboammar/marketing-skills/tree/main/skills/watch-video
Command: npx skills add https://github.com/imMamdouhaboammar/marketing-skills --skill watch-video-immamdouhaboammar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires yt-dlp, mlx-whisper, ffmpeg.

What problem does it solve? Watching long videos to extract key information is time-consuming, and different sources (YouTube, Loom, Zoom recordings, local files) each require different tooling. This Skill unifies video ingestion, transcription, and analysis into one workflow with user-controlled depth and cost. ## Core Features & Use Cases - Multi-source ingestion: Accepts YouTube, Loom, Vimeo, Riverside, Zoom recordings, X/IG/TikTok URLs, and local MP4/MOV/WebM/MKV files via yt-dlp. - Three depth modes: transcript (fast, free), visual (transcript plus ffmpeg frame extraction and Claude vision pass on key moments), and multimodal (Gemini native video ingestion or dense Claude vision fallback). - Smart transcription: Prefers free platform-provided transcripts (YouTube auto-subs, Loom, Riverside) and falls back to local MLX-Whisper on Mac. - Structured outputs: Saves transcript.txt, metadata.json, moments.md, and summary.md with flagged action items, decisions, and quotes to a dated workdir, with optional capture to a second-brain vault. - Use Case: A user records a Loom walkthrough of a workflow, runs the visual mode to extract the transcript and key UI moments, then feeds the output into a skill-generation workflow to document the process. ## Quick Start Ask the agent to run /watch-video with a video URL and optionally specify transcript, visual, or multimodal mode, for example by saying "watch this Loom recording in visual mode and summarize the key moments."

Frequently Asked Questions about watch-video

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transcribe a YouTube video without paying for an API?

Use yt-dlp with --write-auto-sub to download YouTube's automatic captions for free, then clean the rolling VTT captions with an awk script. If no subtitles exist, MLX-Whisper runs locally on Mac M-series machines at no cost.

How to extract key moments from a Loom recording?

Download the Loom video with yt-dlp, extract frames with ffmpeg at a 5-second cadence for screen-share content, then run a Claude vision pass pairing each frame with its transcript window. The output is a moments.md file listing timestamped key events.

What is the difference between transcript, visual, and multimodal video analysis modes?

Transcript mode returns only cleaned text and metadata. Visual mode adds ffmpeg frame extraction and a Claude vision pass to identify key on-screen moments. Multimodal mode sends the full video to Gemini natively, or uses dense Claude vision frames as a fallback.

Can I use Gemini to analyze long videos instead of frame-by-frame vision?

Yes, if the GEMINI_API_KEY environment variable is set, the video uploads via the Gemini Files API and is analyzed natively, which is cheaper and faster for long videos. Without the key, the skill falls back to dense Claude vision at one frame per 3 seconds.

Why does video transcription fail with no subtitles available?

Transcription fails when the platform provides no subtitles and Whisper is not installed locally. Install MLX-Whisper with pip install mlx-whisper on Mac, or use whisper.cpp as a further fallback.

What frame rate should I use for ffmpeg frame extraction on different video types?

Use 1 frame per 5 seconds for screen-share demos, 1 per 30 seconds for talking-head podcasts, and 1 per 10 seconds plus scene-change detection for slide presentations. The default is 1 frame per 15 seconds when the source type is unclear.