business-brainstorm
When you want to pressure-test a potential new business, product, or side project against the serial-founder filter. Not…
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 +
$ npx -y skills add coreyhaines31/makerskills --skill watch-video --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/watch-videoContext preview
The summary Claude sees to decide when to auto-load this skill.
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 +
name: watch-video description: 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 $GEMINI_API_KEY set, else dense Claude vision). Uses local Whisper for transcription (MLX-Whisper on Apple Silicon, faster-whisper elsewhere), falls back to platform-provided transcripts when available (Loom, Riverside, YouTube auto-subs). Saves to ~/Documents/videos/<source>-<slug>-<date>/ and optionally captures summary to second-brain raw/ as call-/meeting-/note-. Triggers on "/watch-video <url>," "watch this video," "transcribe this loom," "analyze this video," "summarize this recording," "key moments from this," "what happened in this video." This skill replaces and broadens the prior youtube-transcript skill. metadata: version: 0.2.3
Replaces and broadens the prior `youtube-transcript` skill. YouTube is now one of many sources; depth is user-controlled.
Accept:
Detect 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:
**Backend selection** (in order):
1. **Platform-provided transcript** if it exists and looks complete:
2. **MLX-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>`
3. **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`.
Output:
Cadence 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" -y
For scene-change detection (slide decks especially):
ffmpeg -i "<workdir>/video.mp4" -vf "select='gt(scene,0.
AI agent skills for the personal operator's craft. Decisions, research, second-brain workflows, content rotation, scenario modeling, CFO cadence, domain hunts, and the meta-skills to author more. Built for founders and indie operators.
When you want to pressure-test a potential new business, product, or side project against the serial-founder filter. Not…
Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so an agent can answer…
Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management,…
When you have a decision to make and want a structured workflow that picks the load-bearing questions, walks through them,…
When you want multi-source, multi-step research on a topic — competitor research before a sales call, market research for a new…
When you want to brainstorm and check available .com domains for a new project — brand naming, aftermarket pricing (HugeDomains /…