
Turns screen recordings into something you can actually work from. Point it at a Loom, ScreenPal, or local MP4 of a bug repro or product demo and it pulls transcripts via Minutes, samples key frames without blowing up context, and writes a durable bundle under ~/.minutes/video-reviews with markdown, JSON, and images. The script respects your existing Minutes transcription stack, whether that's Whisper or Parakeet, and caps frames adaptively so long walkthroughs stay manageable. You still need to read the artifacts and write the actual brief, but it handles the deterministic extraction work so you're not manually scrubbing timelines or guessing what was said. Best for meeting-adjacent product work, not generic video understanding.
$ npx -y skills add silverstein/minutes --skill minutes-video-review --agent claude-codeInstalls into .claude/skills of the current project.
Analyze a product walkthrough, bug report video, Loom, ScreenPal, or local recording into a durable artifact bundle that agents can keep working from.
This skill is for meeting-adjacent product artifacts, not for generic "understand any video" requests. Use it when the user wants a recorded demo, bug repro, or walkthrough turned into something actionable for engineering, product, support, or follow-up agent work.
The bundled script handles the deterministic pipeline:
ffmpeg~/.minutes/video-reviews/Then you review the resulting artifacts and return the actual user-facing brief.
Local file:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/minutes-video-review/scripts/video_review.py" \
"/absolute/path/to/video.mp4"
Hosted video:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/minutes-video-review/scripts/video_review.py" \
"https://go.screenpal.com/watch/..."
Useful options:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/minutes-video-review/scripts/video_review.py" \
"https://www.loom.com/share/..." \
--focus "customer signup bug repro" \
--cookies-from-browser chrome \
--env-file /absolute/path/to/.env \
--frame-step 15 \
--max-frames 36 \
--keep-temp
Run the script on the provided local file or hosted video URL.
The script prints JSON with the output artifact paths. Important outputs include:
analysis_mdanalysis_jsontranscript_mdmetadata_jsonframes_dircontact_sheet_artifactRead the generated analysis.md and analysis.json first.
Then inspect:
transcript.md for the actual spoken contentframes/ when visual state matterscontact-sheet.jpg for a quick visual sweep across sampled framesmetadata.json for transcript method, duration, source kind, and frame sampling detailsReturn a concise, useful brief to the user that includes:
Do not just echo the generated markdown blindly. Use the artifacts as evidence and produce a thoughtful agent answer.
This skill should prefer transcript backends in this order:
minutes process with an isolated temporary configwhisper CLI if availableImportant:
When reporting the artifacts back to the user, preserve the transcript method exactly. Prefer labels like:
vtt_captionsminutes-whisperminutes-parakeetminutes-whisper-fallbacklocal_whisper_cliopenai_audio_transcriptionThis skill must stay disciplined about context size.
The bundled script already caps frames adaptively, but you should still exercise judgment when deciding what to read or mention.
The script writes a durable bundle under:
~/.minutes/video-reviews/<timestamp>-<slug>/
Expected files:
analysis.mdanalysis.jsontranscript.mdmetadata.jsonframes/These artifacts are not part of the normal ~/meetings/ corpus by default.
See:
${CLAUDE_PLUGIN_ROOT}/skills/minutes-video-review/references/dependencies.md${CLAUDE_PLUGIN_ROOT}/skills/minutes-video-review/references/output-schema.mdyt-dlp. Local file review still works without it.analysis.md/json may be heuristic when no multimodal provider key is available. You still need to read the artifacts and produce the final answer.Sponsors