Watch
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
When you want to extract content from a video — YouTube, Loom, Vimeo, Riverside, Zoom recording, local MP4, X/IG video, anything yt-dlp supports.
$ npx skills add coreyhaines31/makerskills --skill watch-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install coreyhaines31/makerskills watch-video --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/watch-video .claude/skills/watch-video && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .claude/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-videoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add coreyhaines31/makerskills --skill watch-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install coreyhaines31/makerskills watch-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/watch-video .agents/skills/watch-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .agents/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coreyhaines31/makerskills --skill watch-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install coreyhaines31/makerskills watch-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/watch-video .cursor/skills/watch-video && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .cursor/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/coreyhaines31/makerskills.git --path skills/watch-video--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add coreyhaines31/makerskills --skill watch-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install coreyhaines31/makerskills watch-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/watch-video .gemini/skills/watch-video && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .gemini/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install coreyhaines31/makerskills watch-videoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add coreyhaines31/makerskills --skill watch-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/watch-video .github/skills/watch-video && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .github/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coreyhaines31/makerskills --skill watch-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install coreyhaines31/makerskills watch-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/watch-video .opencode/skills/watch-video && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "watch-video" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/watch-video into .opencode/skills/watch-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch-video", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
watch-videoWhen you want to extract content from a video — YouTube, Loom, Vimeo, Riverside, Zoom recording, local MP4, X/IG video, anything yt-dlp supports.
Watch Video is an agent skill from coreyhaines31/makerskills. When you want to extract content from a video — YouTube, Loom, Vimeo, Riverside, Zoom recording, local MP4, X/IG video, anything yt-dlp supports. Three depth modes user picks per invocation — transcript (just words, fast/free), visual (transcript + ffmpeg frame extraction + Claude vision pass on key moments), multimodal (Gemini native video ingestion if $GEMINIAPIKEY set, else dense Claude vision). Uses local Whisper for transcription (MLX-Whisper on Apple Silicon, faster-whisper elsewhere), falls back to…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Transcription, Video production and Speech recognition and synthesis. It works with YouTube, FFmpeg, Google Gemini and Whisper. The repository describes itself as: AI agent skills for the personal operator's craft — decisions, research, second-brain, content rotation, scenario modeling, and meta-skills to author more. Works with Claude… The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cc31579. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
yt-dlpffmpegcurlpipjqbrewffprobepython3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
generativelanguage.googleapis.comloom.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GEMINI_API_KEYLOOM_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Watch Video loads about 3.8k tokens when it runs. Until then it costs about 248 tokens; SKILL.md has 1,359 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from coreyhaines31/makerskills at commit cc31579, republished under its MIT licence (© coreyhaines31). 1,359 words, ~3,760 tokens.
.claude/skills/watch-video/SKILL.md (or your agent's skills folder).Replaces and broadens the prior youtube-transcript skill. YouTube is now one of many sources; depth is user-controlled.
Accept:
youtu.be/<id>, youtube.com/shorts/<id>, raw 11-char IDloom.com/share/<id> or loom.com/embed/<id>vimeo.com/<id>.mp4 from a downloaded recordingsocial-fetch for metadata, uses yt-dlp for the file.mp4 / .mov / .webm / .mkvDetect source from URL pattern or file extension. If ambiguous, ask.
| Invocation | Mode | What you get |
|---|---|---|
/watch-video <url> | transcript (default) | Clean text, metadata, optional chapters |
/watch-video <url> transcript | transcript | Same as default |
/watch-video <url> visual | visual | Transcript + frames at intervals + Claude vision pass identifying key moments |
/watch-video <url> multimodal | multimodal | Native video to Gemini (if $GEMINI_API_KEY), else dense Claude vision frame-by-frame |
If the depth isn't specified and the video is >10 minutes, ask before defaulting (visual/multimodal cost real money on long videos).
For URL sources, use yt-dlp:
yt-dlp --print "%(title)s|%(uploader)s|%(duration_string)s|%(upload_date>%Y-%m-%d)s|%(description)s" \
--print "%(chapters)j" --skip-download "<url>"Capture: title, uploader/channel, duration, upload date, description (first paragraph), chapters (JSON or null).
For local files, use ffprobe:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "<file>"~/Documents/videos/<source>-<slug>-<date>/Where:
source: youtube / loom / vimeo / riverside / zoom / localslug: kebab-case of title (first 4–6 words, max 50 chars)date: YYYY-MM-DDBackend selection (in order):
Platform-provided transcript if it exists and looks complete:
yt-dlp --write-sub --write-auto-sub --skip-download --sub-lang en --sub-format vtthttps://www.loom.com/share/<id> page metadata or Loom API if $LOOM_API_KEY setMLX-Whisper local (default on Apple Silicon Macs):
# Install once: pip install mlx-whisper
python3 -c "import mlx_whisper; mlx_whisper.transcribe('<file>', path_or_hf_repo='mlx-community/whisper-large-v3-turbo')" \
> "<workdir>/transcript-raw.json"Or via the CLI: mlx_whisper <file> --model mlx-community/whisper-large-v3-turbo --output-dir <workdir>
Not on Apple Silicon (Linux, Intel Mac, Windows, cloud agents): faster-whisper (pip install faster-whisper, CPU or CUDA) or whisper.cpp. Same model size, same output handling.
Download the video file first if it's a URL (use yt-dlp; Loom/Vimeo/YT all supported):
yt-dlp -f "bv*[height<=720]+ba/b[height<=720]" -o "<workdir>/video.%(ext)s" "<url>"720p is plenty for transcription and frame analysis (smaller download, faster processing).
Clean the transcript (only needed for YouTube auto-subs which have rolling captions; Whisper output is already clean):
# YouTube VTT cleanup — de-dup rolling captions, strip tags, paragraph-break on cue gaps >2s
awk '
/^WEBVTT/ || /^Kind:/ || /^Language:/ || /^NOTE/ { next }
/-->/ { in_cue = 1; last = ""; next }
/^$/ { if (last) print last; in_cue = 0; last = ""; next }
in_cue { gsub(/<[^>]+>/, "", $0); last = $0 }
END { if (last) print last }
' "<workdir>/transcript.en.vtt" | awk '!seen[$0]++' > "<workdir>/transcript.txt"Save final to <workdir>/transcript.txt.
transcript mode: stop hereOutput:
transcript.txtmetadata.jsonvisual mode: extract frames + vision passCadence by source heuristic:
| Source type | Frame cadence |
|---|---|
| Screen-share / Loom / demo | 1 frame per 5s (UI changes fast) |
| Talking head / podcast | 1 frame per 30s (slow change) |
| Slide presentation | 1 frame per 10s + force a frame on each detected scene change |
| Default if unsure | 1 frame per 15s |
mkdir -p "<workdir>/frames"
ffmpeg -i "<workdir>/video.mp4" -vf "fps=1/15" "<workdir>/frames/frame-%04d.png" -yFor scene-change detection (slide decks especially):
ffmpeg -i "<workdir>/video.mp4" -vf "select='gt(scene,0.3)',showinfo" -vsync vfr "<workdir>/frames/scene-%04d.png" 2> "<workdir>/scene-detection.log"Pair each frame with the transcript chunk for the same timestamp window. Then batch-send to Claude vision for synthesis.
Per-frame batch prompt (up to ~10 frames per call):
Here are N frames from a video at timestamps T1..TN. For each frame, describe what's on screen in 1–2 sentences. Flag: (a) UI changes from previous frame, (b) text visible on screen, (c) any moment that looks like a decision, action, or notable event. Also note the transcript text spoken during this window.
Save the output as <workdir>/moments.md:
# Key moments — <title>
## 00:00:15 (frame-001.png)
**On screen**: Login form, email field focused
**Transcript**: "So you just open it up and..."
**Note**: Beginning of UI demo
## 00:00:45 (frame-002.png)
**On screen**: Dashboard with 4 cards
**Transcript**: "And here's where you see all your projects."
**Note**: Major view change — first time the dashboard appearsAfter moments are identified, synthesize the whole video into <workdir>/summary.md:
# Summary — <title>
**Source:** <source URL / file>
**Duration:** <hh:mm:ss>
**Watched at:** <date>
**Mode:** visual
## TL;DR
<2–4 sentences>
## Key moments
- 00:00:15 — <one-line>
- 00:00:45 — <one-line>
## Action items flagged
- <item> [timestamp]
## Decisions flagged
- <decision> [timestamp] — consider routing to /decide
## Quotes worth keeping
- "..." [timestamp]
## Open questions
- <question raised but not answered>multimodal modeGemini native if $GEMINI_API_KEY is set (much cheaper + faster than per-frame for long videos):
Default model: gemini-3.5-flash (released May 2026, ~$1.50 input / $9 output per 1M tokens; ~$0.15/sec of video; beats 3.1 Pro on coding/agentic benchmarks at 4× the speed). Override to gemini-3.1-pro for brand audits / high-stakes analysis where details matter; gemini-2.5-flash-lite for bulk cheap processing.
# Step 1: Upload video via Files API
FILE_URI=$(curl -s -X POST "https://generativelanguage.googleapis.com/upload/v1beta/files?key=$GEMINI_API_KEY" \
-H "X-Goog-Upload-Command: start, upload, finalize" \
-H "Content-Type: video/mp4" \
--data-binary "@<workdir>/video.mp4" | jq -r '.file.uri')
# Wait until file is ACTIVE (Gemini processes the video first)
while true; do
STATE=$(curl -s "$FILE_URI?key=$GEMINI_API_KEY" | jq -r '.state')
[ "$STATE" = "ACTIVE" ] && break
sleep 3
done
# Step 2: Generate content with the file + multimodal-analysis prompt
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"contents\":[{
\"parts\":[
{\"file_data\":{\"mime_type\":\"video/mp4\",\"file_uri\":\"$FILE_URI\"}},
{\"text\":\"<multimodal analysis prompt — see Step 7's summary template + use-case extensions>\"}
]
}]
}"Files persist in Gemini Files API for ~48 hours — useful for re-querying the same video with different prompts.
Dense Claude vision fallback if no Gemini key:
Same summary.md template as Step 7 + an extended section:
## Multimodal observations
- **Body language / delivery**: <observations on talking-head video>
- **Pacing**: <fast/slow/uneven>
- **Visual style**: <brand audit, ad review, design observations>
- **Audio quality / atmosphere**: <music, silence, background>Exact extra sections depend on the use case (brand audit, ad review, talk delivery review, client-call read). Use case is inferred from the source + the user's verbal framing when invoking.
After any mode completes, offer:
"Want to capture this to second-brain? I'll write a
call-<slug>.md(ormeeting-/note-/resource-) to${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/with the summary, source URL, and transcript link."
Type prefix by source:
| Source | Prefix |
|---|---|
| Loom / Zoom / Riverside / Otter / call recording | call- |
| Meeting (own notes, not a transcript) | meeting- |
| Talk / keynote / conference | note- |
| Ad / landing-page video / marketing reference / competitor video | resource- |
File body: 1-line source, the summary, link to full workdir.
In chat:
<source> · <title> · <duration> · <mode> · <word count> wordsvisual / multimodal: brief list of top 3 key moments| Source | Download | Built-in transcript | Notes |
|---|---|---|---|
| YouTube | yt-dlp | Auto-subs (--write-auto-sub) | Same as the prior youtube-transcript skill |
| Loom | yt-dlp (Loom supported) | Yes — fetch via embed metadata or Loom API | Async screenshare focus — prime use case |
| Vimeo | yt-dlp | Sometimes | Marketing/embed videos |
| Riverside | Direct URL from export, or local file | Yes — Riverside generates them | Podcast episodes |
| Zoom | Local .mp4 (downloaded recordings) | Sometimes (Zoom audio transcript file) | Client calls |
| X / IG / TikTok | Defer to social-fetch for metadata, yt-dlp for file | No | Short-form |
| Local file | n/a | n/a | Drop a path |
social-fetch — for X/IG/TikTok URL metadata (engagement, author, replies) before video processingsecond-brain — capture summary as raw/call-<slug>.md, meeting-, note-, or resource- per source typedecide — when a video contains a flagged decision, route to /decide for structured capturepm — action items flagged in summary can be triaged to project boardsslide-deck — talk recordings → outline extraction → deck draft (loop)jab-hook — quotes + clip-worthy moments from podcast/talk videos feed BIP/promo postsskillify from-video — primary use case for visual mode on process recordings. the user records themselves doing a workflow (Loom/screen-share), this skill extracts transcript + key visual moments, then skillify synthesizes the workflow into a SKILL.md. "Record once, AI converts to skill."| Failure | Response |
|---|---|
| Video unavailable / private / region-locked | Report and stop |
| No subtitles + Whisper not installed | Tell the user: pip install mlx-whisper (Apple Silicon) or pip install faster-whisper (anything else) |
| ffmpeg missing (for visual/multimodal) | Tell the user: brew install ffmpeg |
| Vision pass returns empty / unclear | Lower the frame count, retry, or fall back to transcript-only with a note |
Multimodal requested but no $GEMINI_API_KEY and >30min video | Warn cost, offer to fall back to visual mode |
yt-dlp binary missing | brew install yt-dlp |
yt-dlp -f "bv*[height<=720]+ba/b[height<=720]" is the default.ffmpeg -vf "select='gt(scene,0.3)'" to force a frame on each detected slide change — more reliable than pure time-based sampling.## Decisions flagged + ## Action items flagged sections signal /decide and /pm follow-ups. Downstream composability lives in the summary structure.© coreyhaines31, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/watch-video of coreyhaines31/makerskills.
Open the folder on GitHubat commit cc31579
Watch Video next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Watch Video this skillcoreyhaines31/makerskills | 851 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Watchmathiaschu/watch | 142 | — | ~4k | Automated safety check: Warn | MIT | |
| Video Clip Extractorlinzzzzzz/openclip | 569 | — | ~2.8k | Automated safety check: Warn | MIT | |
| Bggg Tiktok Readvideobinggandata/bggg-skills | 605 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Video Transcript Downloadersundial-org/awesome-openclaw-skills | 663 | 2 repos | ~574 | Automated safety check: Pass | None | |
| 9Router Speech-to-Textdecolua/9router | 31k | — | ~914 | Automated safety check: Pass | MIT |
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
linzzzzzz/openclip
Processes videos to identify engaging moments, generate transcripts, and create highlight clips with artistic titles and custom cover images.
binggandata/bggg-skills
把 TikTok、Reels、YouTube Shorts、UGC 广告、本地 MP4/MOV/WebM 等视频拆成 Codex 可读的视频上下文。
sundial-org/awesome-openclaw-skills
Download videos, audio, subtitles, and clean paragraph-style transcripts from YouTube and any other yt-dlp supported site.
decolua/9router
Transcribes audio files into text or subtitles through 9Router's Whisper-compatible endpoint, using models from OpenAI, Groq, Gemini, Deepgram and others.
KIRVO-REPORTING/video-to-notes
Use immediately for any bare YouTube or YouTube Shorts URL, youtu.be link, Bilibili or b23.tv link, or other video URL; do not ask what the user wants.
coreyhaines31/makerskills
When you want to pressure-test a potential new business, product, or side project against the serial-founder filter.
coreyhaines31/makerskills
Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so an agent can answer on your team's behalf.
coreyhaines31/makerskills
Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management, categorize and reconcile, compute end-of-month cash via transaction-sum…
coreyhaines31/makerskills
When you have a decision to make and want a structured workflow that picks the load-bearing questions, walks through them, reaches a call (or "wait"), and archives the rationale for future reference.
coreyhaines31/makerskills
When you paste raw human input — a call transcript (Grain, Zoom, Granola, Fathom), a text or email from a client/partner/friend, a voice-memo dump, or meeting notes — and want it converted into…
coreyhaines31/makerskills
When you want multiple expert perspectives on a founder/operator question — a simulated board of advisors (Jason Fried, Elon Musk, Jeff Bezos, Jensen Huang, Bob Iger, Paul Graham, Naval Ravikant…
Works with
When you want to extract content from a video — YouTube, Loom, Vimeo, Riverside, Zoom recording, local MP4, X/IG video, anything yt-dlp supports. Watch Video is an agent skill from coreyhaines31/makerskills. When you want to extract content from a video — YouTube, Loom, Vimeo, Riverside, Zoom recording, local MP4, X/IG video, anything yt-dlp supports.
Watch Video fits situations like: /watch-video <url; watch this video; transcribe this loom; analyze this video.
Run `npx skills add coreyhaines31/makerskills --skill watch-video -a claude-code`. Or copy the skill folder (skills/watch-video in coreyhaines31/makerskills) into .claude/skills/watch-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add coreyhaines31/makerskills --skill watch-video -a codex`. Or copy the skill folder (skills/watch-video in coreyhaines31/makerskills) into .agents/skills/watch-video in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add coreyhaines31/makerskills --skill watch-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/watch-video, .gemini/skills/watch-video, .github/skills/watch-video and .opencode/skills/watch-video in your project.
Going by SKILL.md and its folder, Watch Video needs the command-line tools its instructions call (yt-dlp, ffmpeg, curl, pip, jq and brew) and credentials named GEMINI_API_KEY and LOOM_API_KEY. Our summary lists: Python 3; A credential in GEMINI_API_KEY; A credential in LOOM_API_KEY.
SKILL.md names 2 domains. In commands or code: generativelanguage.googleapis.com and loom.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Watch Video is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Watch Video: Watch (mathiaschu/watch, 142 stars), Video Clip Extractor (linzzzzzz/openclip, 569 stars), Bggg Tiktok Readvideo (binggandata/bggg-skills, 605 stars) and Video Transcript Downloader (sundial-org/awesome-openclaw-skills, 663 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
coreyhaines31 (a GitHub user) maintains it in coreyhaines31/makerskills, which has 851 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 2026.
Source: coreyhaines31/makerskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.