Skip to main content
skill CX Codex

video-content-analyzer — Claude Code skill: what it does and setup

Analyzes short-form videos across Instagram Reels, TikTok, and YouTube Shorts using Gemini AI. Finds hooks, retention patterns, and content structures.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add bradautomates/head-of-content --skill video-content-analyzer -a claude-code
Open on GitHub

What video-content-analyzer does

The skill parses vertical video posts from Instagram Reels, TikTok, and YouTube Shorts to determine why top content performs well. You supply a JSON file with outlier posts, and the tool evaluates each clip via Gemini AI. The output records hook mechanics, narrative structure, speech energy, and call-to-action details.

Under the hood, execution relies on analyze_videos.py. It requires the GEMINI_API_KEY environment variable and the google-genai and requests Python libraries. If these prerequisites are missing, the script halts immediately, so configure credentials before processing batches. For TikTok, the analyzer can process webVideoUrl page links from Apify scrapers alongside direct video files.

What it helps with

  • extract opening hooks and pacing formulas from viral videos
  • generate JSON breakdowns of short-form video narrative structures
  • identify successful call-to-action strategies in Reels and Shorts
  • categorize audience retention techniques across TikTok posts

Example prompts for the agent

  • Analyze videos from outliers.json and extract repeatable hook patterns
  • Break down content structure for the clips listed in reels-data.json
  • Run hook analysis on tiktok-posts.json and save findings to report.json

How to install video-content-analyzer

1Skills CLI (Vercel)

npx skills add bradautomates/head-of-content --skill video-content-analyzer -a claude-code

2Manually: put the files in place

~/.claude/skills/video-content-analyzer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/video-content-analyzer/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about video-content-analyzer

How to install video-content-analyzer in Claude Code?

Run npx skills add bradautomates/head-of-content --skill video-content-analyzer -a claude-code in your project terminal.

What does video-content-analyzer do?

It sends video URLs to Gemini AI to break down opening hooks, pacing, visual techniques, and calls to action into structured JSON.

What dependencies are required to run the script?

You need a valid GEMINI_API_KEY environment variable along with the google-genai and requests Python packages.

Source text

SKILL.md · MIT
---
name: video-content-analyzer
description: |
  Analyze short-form videos with Gemini AI to extract hooks, content structure, and replicable patterns.
  Supports Instagram Reels, TikTok, and YouTube Shorts.

  Use when asked to:
  - Analyze video content for hooks and structure
  - Extract replicable formulas from viral videos
  - Understand why a video performed well
  - Get AI analysis of video content patterns

  Triggers: "analyze videos", "extract hooks", "video analysis", "analyze reels",
  "what makes this video work", "hook analysis", "content structure analysis"
---

# Video Content Analyzer

Analyze short-form videos with Gemini AI to extract hooks, content structure, delivery style, and CTA strategies.

## Prerequisites

- `GEMINI_API_KEY` environment variable
- `google-genai` and `requests` Python packages

## Usage

```bash
python3 .claude/skills/video-content-analyzer/scripts/analyze_videos.py \
  --input outliers.json \
  --output video-analysis.json \
  --platform instagram \
  --max-videos 5
```

### Parameters

| Arg | Description |
|-----|-------------|
| `--input`, `-i` | Input JSON file with outlier posts (required) |
| `--output`, `-o` | Output JSON file for results (required) |
| `--platform`, `-p` | Platform: `instagram`, `tiktok`, or `youtube` (default: instagram) |
| `--max-videos`, `-n` | Max videos to analyze (default: 5) |

## Input Format

Accepts outlier JSON from platform-specific research skills. Handles both formats:
- Direct list: `[{post1}, {post2}, ...]`
- Wrapped: `{"outliers": [{post1}, {post2}, ...]}`

The script automatically maps platform-specific fields:

| Platform | Video URL Fields | Caption | Username |
|----------|-----------------|---------|----------|
| Instagram | `videoUrl` | `caption` | `ownerUsername` |
| TikTok | `videoUrl`, `video_url`, `webVideoUrl` | `text`, `desc` | `authorUsername` |
| YouTube | `videoUrl`, `url` | `title` | `channelTitle` |

**TikTok Note**: The Apify TikTok Scraper returns `webVideoUrl` (the TikTok page URL) rather than a direct video download URL. Gemini will attempt to analyze from this page URL.

## Output

Returns JSON array with analysis for each video:

```json
[
  {
    "post_id": "ABC123",
    "username": "creator",
    "url": "https://...",
    "platform": "instagram",
    "likes": 50000,
    "comments": 1200,
    "views": 500000,
    "analysis": {
      "hook": {
        "technique": "pattern-interrupt",
        "opening_line": "Stop scrolling if you...",
        "attention_grab": "Creates urgency and targets specific audience",
        "replicable_formula": "Stop scrolling if you [pain point]"
      },
      "content_structure": {
        "format": "problem-solution",
        "sections": [...],
        "pacing": "fast",
        "retention_techniques": ["pattern interrupts", "text overlays"]
      },
      "delivery_style": {
        "speaking": "direct-to-camera",
        "energy": "high-energy",
        "text_overlays": true,
        "visual_style": "quick cuts with b-roll"
      },
      "cta_strategy": {
        "type": "follow",
        "cta_text": "Follow for more tips",
        "placement": "end"
      },
      "why_it_works": "..."
    }
  }
]
```

## Hook Techniques

The analyzer identifies these hook types:
- `pattern-interrupt` - Breaks expected patterns
- `question` - Opens with engaging question
- `bold-claim` - Makes surprising statement
- `story-tease` - Hints at compelling narrative
- `visual-shock` - Striking visual opening
- `curiosity-gap` - Creates information gap
- `direct-address` - Speaks to specific audience
- `controversial-take` - Polarizing opinion
- `relatable-pain` - Targets common struggle
- `transformation-preview` - Shows before/after

## Content Formats

- `problem-solution` - Present problem, offer fix
- `listicle` - Numbered tips/items
- `story` - Narrative arc
- `tutorial` - Step-by-step how-to
- `before-after` - Transformation reveal
- `day-in-life` - Lifestyle content
- `reaction` - Response to other content
- `hot-take` - Opinion piece
- `tool-demo` - Product/tool showcase

© bradautomates · MIT · bradautomates/head-of-content

Similar skills

Everything for Marketing and content →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor