CtrlK
BlogDocsLog inGet started
Tessl Logo

watch

Watch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.

63

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

Fix and improve this skill with Tessl

tessl review fix ./skills/watch/SKILL.md
SKILL.md
Quality
Evals
Security

Security

1 high severity finding. You should review these findings carefully before considering using this skill.

High

W007: Insecure credential handling detected in skill instructions.

What this means

The skill handles credentials insecurely by requiring the agent to include secret values verbatim in its generated output. This exposes credentials in the agent’s context and conversation history, creating a risk of data exfiltration.

Why it was flagged

The prompt explicitly tells the agent to AskUserQuestion for Groq/OpenAI API keys and then write lines like GROQ_API_KEY=... or OPENAI_API_KEY=... into ~/.config/watch/.env, which requires the LLM to accept and embed secret values verbatim (high exfiltration risk).

Report incorrect finding

Low

Low-risk findings.

1 low severity finding. Worth noting, but not necessarily harmful.

Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

Yes: the required runtime flow downloads captions from a user-supplied public URL via `yt-dlp` (outsider-origin text) and then parses/prints that caption text into the LLM context (`scripts/watch.py` → `scripts/download.py` writes `.vtt` → `scripts/transcribe.py` reads VTT and constructs `transcript_text`, which `watch.py` embeds in its stdout under “## Transcript”).

Repository
bradautomates/claude-video
Audited
Security analysis
Snyk

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.