Tools· Media Production

    claude-video

    claude-video is a video analysis pipeline that downloads videos, extracts frames, and produces transcripts so Claude can answer targeted questions about individual scenes.

    analyticalstructuringexecutableOpen Source
    Source code
    In Claude Code: /plugin marketplace add bradautomates/claude-video, then /plugin install watch@claude-video. Other environments: npx skills add bradautomates/claude-video -g. Requirement: yt-dlp and ffmpeg, optionally an API key for Groq or OpenAI as the Whisper fallback.
    claude-video

    Description

    Strengths

    Broad platform support
    Through yt-dlp, URLs from YouTube, Loom, TikTok, X, Instagram and several hundred other sources can be processed, in addition to local files in mp4, mov, mkv and webm.
    Captions first
    At the transcript detail level, yt-dlp returns existing subtitles without downloading the video, covering the majority of public videos for free and instantly.
    Frame deduplication
    Comparing each frame against the last one kept drops near-identical shots, for example held slides or static screen recordings, so the frame budget is spent on genuinely different content.
    Automatic frame budgeting
    An auto-fps logic spreads the frame budget across the video length, with denser sampling in focused time windows, so even a long video does not blow the context window.
    Multiple host environments
    Besides Claude Code, the skill can also be installed via the Agent Skills CLI into Codex, Cursor, Copilot, Gemini CLI and over 50 other hosts.

    Assessment

    AI features

    • Multimodal frame reading Claude reads the extracted JPEGs in parallel as images and answers questions based on what is actually visible in the frame, rather than relying on the title or description.
    • Whisper transcription as fallback If subtitles are missing, a mono audio track is extracted and sent to Groq's whisper-large-v3 or OpenAI's whisper-1, and the backend can also be forced via an option.
    • Timestamp-driven frame selection If the transcript names a specific moment, for example a cue like look here, the script grabs a targeted frame at that point in addition to the regular sampling.
    • Scene-based frame detection In the balanced and token-burner detail levels, the video is decoded for scene changes, from which evenly distributed frames are then selected.

    Suitable for

    • Users who want to evaluate video content without watching the entire material manually
    • Analysis of individual frames or scenes, for example to check image composition, on-screen text or product placement
    • Transcription of videos without existing subtitles via the Whisper fallback
    • Teams who want to embed video reviews or content analyses into an existing Claude Code workflow

    Limitations and notes

    • Local dependencies yt-dlp and ffmpeg must be present; on macOS, setup installs them automatically via brew, while Linux and Windows only print the required commands, which then have to be run manually.
    • API key only when needed Whisper transcription via Groq or OpenAI only kicks in when a video has no subtitles, which mainly affects local files, TikToks, some Vimeo uploads and the occasional caption-less YouTube video.
    • Frames dominate token cost In a measured 49-minute test video, frames at the default width cost roughly 197 tokens per image, and a resolution of 1024 pixels roughly quadruples that figure.
    • Warning at token-burner For videos with many scene changes, 116 cuts in the measured test case, the token-burner mode returns every frame uncapped and triggers a warning past 250 frames, while balanced thins the result to 100 frames.

    Quick start

    1. Choose the installation path for your environment: in Claude Code with /plugin marketplace add bradautomates/claude-video, then /plugin install watch@claude-video, on other hosts with npx skills add bradautomates/claude-video -g.
    2. On the first /watch call, the script automatically checks whether yt-dlp and ffmpeg are present and sets them up via brew on macOS.
    3. Pass a video and a question, for example /watch https://youtu.be/dQw4w9WgXcQ what happens at the 30 second mark.
    4. Focus on a time window with --start and --end if needed, which raises the frame density in that window.
    5. Optionally set an API key for the Whisper fallback, GROQ_API_KEY is preferred, OPENAI_API_KEY as an alternative, in ~/.config/watch/.env.

    Tips

    • Use --detail transcript when only the spoken content matters, which skips the frame download entirely.
    • For on-screen text, such as slides, terminals or code, set --resolution 1024 so the text stays readable.
    • Use --no-dedup only when near-identical frames should deliberately be kept; normally deduplication saves tokens without losing information.
    • For long or high-motion videos, try --detail efficient first, which often delivers enough frames in a fraction of the time.

    Access

    Last reviewed: · Pricing, plans and features are a snapshot in time. Check the provider's own page before deciding.

    In the workshop this becomes your method.

    Whoever sees this process run once wants the agent behind it next. We build that in the workshop From Process to Agent.

    View workshops

    Related resources

    Browse all resources

    Conversation, not pitch

    Understand first, then decide. We take time for an initial conversation, without sales pressure, without obligation.

    Schedule a call