agentleFS
valtterimelkkovaltterimelkko/agent-workflow-skills/skills/video-deep-understanding/SKILL.md

video-deep-understanding

Skill2 starsChanged 45 days agoMITView on GitHub

Deeply understand any video by extracting transcript evidence and visual evidence from a URL or local file. Use whenever the user pastes a video link or local video and wants analysis, summary, transcription, UI inspection, timestamped answers, comparison against local code/docs, or wants 'the part where they talk about X'. Make sure to use this skill for product demos, tutorials, screen recordings, and walkthrough videos even when the user does not explicitly ask for a transcript.

  • Reads credentials

The file

Show its rules and text

We split this skill into the rules it gives an agent

21 rules. About 0 are common, 19 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈19

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    search the transcript for named concepts before burning image tokens

    line 20
  2. Distinctive:

    Read these only when needed:

    line 25
  3. Very specific:

    Do not read bundled scripts by default.

    line 29
  4. Distinctive:

    If it exits 0, say nothing and continue.

    line 41
  5. Distinctive:

    If it exits non-zero:

    line 43
  6. Distinctive:

    If you need more detail, use:

    line 48
  7. Distinctive:

    If you already watched the same video in this session and still have the relevant transcript/frames in context, answer directly instead of …

    line 82
  8. Distinctive:

    If the user is asking about a named concept, workflow stage, UI element, or "the part where...", do not start with a sparse full-video …

    line 97
  9. Very specific:

    When --find is used, the script emits:

    line 103
  10. Distinctive:

    Use those windows for the second pass.

    line 107
  11. Distinctive:

    Use two evidence streams:

    line 111
  12. Distinctive:

    If the video is over ~10 minutes:

    line 122
  13. Distinctive:

    do not assume a full scan is enough for precise UI analysis

    line 123
  14. Distinctive:

    does not upload the video itself to OpenAI

    line 137
  15. Distinctive:

    does not log into websites automatically

    line 138
  16. Distinctive:

    does not expose API keys in stdout/stderr

    line 139
  17. Distinctive:

    does not require script inspection on every invocation

    line 140
  18. Distinctive:

    If YouTube starts failing, especially with bot-challenge or 403-style errors, read:

    line 144
  19. Distinctive:

    stop retrying and explain the limitation clearly

    line 151
  20. Distinctive:

    Keep it if follow-up analysis is likely.

    line 156
  21. Distinctive:

    Delete it when you are done.

    line 157

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Video Deep Understanding

This skill gives the agent a video input. It can:

  • download a remote video or use a local file
  • pull native captions when available
  • fall back to OpenAI transcription when needed
  • extract frames for visual inspection
  • search the transcript for named concepts before burning image tokens
  • reuse a cached local copy of a previously downloaded URL on follow-up runs

Progressive disclosure

Read these only when needed:

  • references/quickstart.md — default workflow and key flags
  • references/troubleshooting.md — sharp edges, failure interpretation, and when to inspect scripts

Do not read bundled scripts by default. Inspect them only if setup/download/transcription fails repeatedly, output looks suspicious, or the user asks about internals.

Step 0 — silent preflight

On macOS/Linux use python3. On Windows use python instead.

Run:

python3 scripts/setup.py --check

If it exits 0, say nothing and continue.

If it exits non-zero:

  • 2 → missing binaries; run python3 scripts/setup.py
  • 3 → missing OpenAI key; run installer and ask the user for the key if they want transcription fallback
  • 4 → both missing; run installer, then ask for the key if needed

If you need more detail, use:

python3 scripts/setup.py --json

Useful fields include:

  • status
  • missing_binaries
  • has_api_key
  • has_proxy
  • js_runtimes
  • cookies_available

Default invocation rule

For long videos, UI demos, or concept-finding tasks, prefer a transcript-first pass:

python3 scripts/watch.py "$URL" --transcript-only --find 'keyword|other keyword'

Then zoom into the relevant section:

python3 scripts/watch.py "$URL" --start 4:32 --end 5:16 --resolution 1024 --contact-sheet

For short videos where the user wants a broad summary, a direct full scan is fine:

python3 scripts/watch.py "$URL"

If you already watched the same video in this session and still have the relevant transcript/frames in context, answer directly instead of re-running.

Important flags

  • --transcript-only — skip frame extraction
  • --find REGEX — show transcript matches and suggested focus windows
  • --start / --end — focused visual pass
  • --resolution 1024 — better for reading on-screen UI text
  • --compact-report — shorter report for agent workflows
  • --contact-sheet — best-effort composite image of extracted frames
  • --no-transcribe — disable OpenAI fallback

Key behaviour changes to exploit

1. Transcript-first narrowing

If the user is asking about a named concept, workflow stage, UI element, or "the part where...", do not start with a sparse full-video frame scan on a long video. Search the transcript first.

2. Automatic cache reuse

Successful URL downloads are cached in the system temp directory. Follow-up runs on the same URL will reuse the cached local copy when possible. This reduces repeated YouTube failures and saves time.

3. Transcript match windows

When --find is used, the script emits:

  • transcript matches
  • suggested focus windows around those matches

Use those windows for the second pass.

How to answer

Use two evidence streams:

  • Transcript evidence — what is said, with timestamps
  • Visual evidence — what is shown, with timestamps

For UI/tutorial tasks, explicitly separate:

  • spoken explanation
  • visible interface structure
  • your interpretation/recommendation

Long-video rule

If the video is over ~10 minutes:

  • do not assume a full scan is enough for precise UI analysis
  • prefer transcript-first narrowing
  • then run focused windows only

Security & data handling

What this skill does:

  • downloads public video/caption data locally via yt-dlp
  • extracts frames/audio locally via ffmpeg / ffprobe
  • sends audio only to OpenAI transcription when fallback is needed and OPENAI_API_KEY is set
  • stores temporary working files locally
  • may reuse a cached local video copy for the same URL in later runs

What this skill does not do:

  • does not upload the video itself to OpenAI
  • does not log into websites automatically
  • does not expose API keys in stdout/stderr
  • does not require script inspection on every invocation

When things go wrong

If YouTube starts failing, especially with bot-challenge or 403-style errors, read:

  • references/troubleshooting.md

That file tells you when to:

  • reuse cache
  • rely on proxy/cookies
  • inspect scripts
  • stop retrying and explain the limitation clearly

Cleanup

The script prints a work directory at the end of every run.

  • Keep it if follow-up analysis is likely.
  • Delete it when you are done.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.