video-analyzelisted
Install: claude install-skill mfrashad/video-analyze
## Setup check
Before doing anything else, run this to verify required tools are installed:
```bash
~/.claude/skills/video-analyze/scripts/setup.sh check
```
If it prints `NEEDS_SETUP`, ask the user:
> "I need to install `yt-dlp` via Homebrew to download videos. OK to run `brew install yt-dlp`?"
If they agree, run:
```bash
brew install yt-dlp
```
Then re-run the setup check before proceeding.
---
## Invocation
```bash
~/.claude/skills/video-analyze/scripts/run.sh <url> [flags]
```
The script prints the path to `manifest.json` on stdout when done. All progress goes to stderr.
### Flags
| Flag | Default | Description |
|---|---|---|
| `--interval <sec>` | auto | Force N seconds between frames |
| `--max-frames <n>` | 20 | Hard cap on total frames extracted |
| `--fidelity high\|low` | high | `high` = one image per frame; `low` = tile 2–4 frames into a single compressed grid |
| `--grid-size 2\|3\|4` | 4 | Frames per grid tile (only for `--fidelity low`) |
| `--skip-transcript` | off | Skip Whisper transcription entirely |
| `--out-dir <path>` | `/tmp/video-analyze/<hash>-<ts>/` | Override output directory |
| `--ig-tt-auth auto\|cookies\|apify` | auto | Auth strategy for Instagram/TikTok |
### Auto frame-interval policy
| Video duration | Default interval | ~Frame count |
|---|---|---|
| < 30 s | every 2 s | ~15 |
| 30–60 s | every 5 s | ~12 |
| > 60 s | ceil(duration / 15) | ~15 |
If the computed frame count would exceed `--max-frames`, the interval is recalcul