Skip to content
Video & Audio
Skill

/watching-videos

The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract

BOOST
From plugin
watch-skill
48710 skills1 command1 MCP
Install
$ npx -y skills add oxbshw/watch-skill --skill watching-videos --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/watching-videos

Context preview

The summary Claude sees to decide when to auto-load this skill.

The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract

SKILL.md

watching-videos.SKILL.md
name: watching-videos
version: "1.4.3"
description: The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract frames, OCR, transcribe, and index it — instead of guessing from the title or asking the user to describe it.
license: MIT
user-invocable: true
allowed-tools: Bash, Read

Watching videos

You don't have a video input; this skill gives you one. Anything a user hands you — a YouTube link, a TikTok, a lecture, a meeting recording, a screen capture, an .mp4 on disk — goes through the same pipeline: frames (scene-aware, deduplicated), OCR, transcript (captions first, local Whisper offline fallback), all persisted into one index.

Before watching: check the index

watch-skill list

If the video was already analyzed — this session or any earlier one — do NOT watch it again. Ask it directly (see the `asking-with-evidence` skill):

watch-skill ask <video_id> "<question>"

One video

watch-skill watch "<url-or-path>" [--start T --end T] [--max-frames N] [--transcript-only]
  • Works on any yt-dlp-supported site (1800+), direct media URLs, HLS/DASH

manifests (`--duration 60` bounds live streams), and local files.

  • Video over ~10 minutes and the user cares about one part → use

`--start`/`--end` for dense sampling of that window.

  • User only needs what was said → `--transcript-only` (fastest, often no

video download at all).

The report prints `Indexed: <video_id>`, frames with `t=MM:SS` timestamps, OCR text, and the transcript. Read every frame path listed — in a single message, parallel Read calls — then answer from frames + OCR

  • transcript, citing timestamps.

Many videos (playlist, channel, folder)

watch-skill batch "<playlist-url-or-folder>" [--limit N]

Everything lands in the same index; one broken video never stops the rest. Afterwards a single `watch-skill search "<phrase>"` spans the whole batch.

First run on a machine

If any command fails with a dependency error, run `watch-skill doctor` once — it installs missing ffmpeg/yt-dlp itself. No API key is required for any of this; transcription is local by default and the video file never leaves the machine.

Read more
Ships withwatch-skill

Give AI agents eyes, ears, and verifiable results. Watch Skill turns video, audio and screen activity into searchable, timestamped evidence, and answers did that actually work? with a deterministic contract rather than a model's opinion.

Get the whole plugin

Other skills on watch-skill.