Cindy Zhu.
← all free guides
Content Claude

The /analyze skill: reverse-engineer any viral video

Hey, it's Cindy ๐ŸŒฑ You commented TRENDS, so here is my whole Claude content research setup: a custom skill called /analyze that reverse-engineers any viral video (the hook, the format, the storytelling structure, why it worked), then finds the patterns across a whole set of videos so you know exactly what your niche rewards right now. Paste the links, Claude pulls the real transcripts itself.
start here

๐Ÿ“ฅ Grab the skill file

Download analyze-skill.zip (this is the exact file you drag into Claude, no editing needed).


๐Ÿงฉ Step 1: install the skill

  1. Download the file above.
  2. Find your skills first: in Claude, go to Customize, then Skills. That is where you add one and switch it on.
  3. Now go to Customize, then Skills.
  4. Press the + button, choose + Create skill, then Upload a skill, and drag in analyze-skill.zip.
  5. Done. It shows up in your skills list, ready to use. Skills work on the free plan too, you do not need Pro for this part.

โšก Step 2: connect Apify (this is the part that matters)

Here is the honest problem. Claude cannot open an Instagram or TikTok link. Not "sometimes", ever. Instagram's robots.txt blocks Anthropic's crawler by name, so a reel URL returns the same login wall whether the link is real or made up. Claude also can't watch video or hear audio.

So you have two options: copy transcripts out by hand every single time, or connect one tool once and never think about it again. Connect the tool. Apify is a scraping platform, and it plugs into Claude as a connector, which means Claude can go and fetch the reel data itself: the metrics and the spoken transcript, from the links you paste.

Setup, about two minutes, one time:

  1. ๐Ÿงฒ Make a free account at apify.com. No card needed, and it comes with $5 of credit a month.
  2. ๐Ÿ”Œ In Claude, go to Settings (or Customize, depending on your build), then Connectors. Search the connector directory for Apify and add it. If it isn't listed, press +, choose Add custom connector, and paste this URL: https://mcp.apify.com
  3. ๐Ÿ”‘ Click Add, then sign in to Apify in the popup that opens. That's OAuth, so there is no API key to copy and paste anywhere.
  4. โœ… Check it worked: ask Claude "what Apify tools do you have?" and it should list things like search-actors and call-actor.
Good news for free-plan people: custom connectors work on the free plan, you just get one. Make this the one.

๐Ÿ“‹ Step 3: paste your links

That's the whole workflow now. Save reels all week, then paste them in one go:

๐Ÿ“‹ Batch teardown from a week of saved links
/analyze

https://www.instagram.com/reel/XXXXXXXXX/
https://www.instagram.com/reel/YYYYYYYYY/
https://www.instagram.com/reel/ZZZZZZZZZ/

Pull these with Apify (include transcripts), then run the full
teardown on each and give me the pattern report. My niche is
[what you make content about, and for whom].

Claude runs the Instagram Reel Scraper, which takes direct reel URLs and returns the transcript, caption, views, likes, comments, duration and posted date in one pass. No second transcription tool, no copy-paste.

You can also point it at a whole account instead of individual links:

๐Ÿ•ต๏ธ Scan a whole competitor account instead
/analyze

Pull @competitor's last 15 reels with Apify (include transcripts,
only posts newer than 3 months), work out their median views so we
can score outliers properly, then give me the pattern report.
Two practical notes. Ask for 5 to 10 reels at a time, because big runs get truncated and Claude has to go back for the rest. And a long run may hand back a job ID that Claude checks on rather than answering instantly, which is normal, just let it finish.

the real cost

๐Ÿ’ธ What it actually costs

Being straight with you, because most people gloss over this. Apify bills two things:

๐Ÿ“Š The scrape itself: about $2.60 per 1,000 reels. Basically nothing.
๐ŸŽ™๏ธ The transcript: about 5 cents per reel (billed per started minute, so a 30-second reel still counts as one). This is the entire bill.

So the free $5 monthly credit covers roughly 100 transcribed reels a month, which is about 25 a week. That is more competitor research than most people will ever do. Credits don't roll over, and when they run out the runs just stop until the cycle resets, so there is no surprise bill.


no connector?

๐Ÿ™… Don't want a connector? The manual fallback

The skill still works without Apify, it just asks you to bring the material. Per reel: paste the URL into a free no-login transcript tool and copy the text out, grab the caption, and note the views plus roughly what that account normally gets (that last number is what makes the outlier score mean anything).

The tools: Supadata (free, no login), TokScript (5 free per day, and you can type tokscript.com/ in front of the reel URL in your address bar), or Transcript365 (5 free credits a week).

โš ๏ธ One safety note either way: do not go near the "reel downloader" sites. That whole category is packed with fake download buttons and copycat pages after your login.

๐ŸŒ The other option: Claude in Chrome

Claude in Chrome works inside your own browser session rather than as a blocked crawler, so it can see the reel page you're actually looking at. It's a different mechanism to the connector, and useful when you want Claude looking at one specific post with you. Worth knowing the gates: paid plans only (Pro, Max, Team, Enterprise) and Chrome desktop only, no Arc, no Brave, no mobile. For batch research, the Apify connector is the better tool.


the output

๐Ÿ”Ž What you get back

For every video: a snapshot table with an outlier score, the transcript, a 3-layer hook analysis (verbal, visual, text), the beat-by-beat storytelling structure, retention mechanics, visual layout, caption and CTA mechanics, why it worked (ranked), and a fill-in-the-blank remix template for your own version. With two or more videos it adds the pattern report: which hooks dominate, which formats keep winning, what your niche rewards right now, and 5 ready-to-film ideas.

One honest limit even with the connector: a transcript is words, not pictures. The visual hook and on-screen text stay marked "not available" unless you drop in a screenshot of the first frame. If you care about the visual layer, attach a few screenshots with your links (you can add up to 20 images in one message).


read the source

๐Ÿ“‹ The full skill (paste-ready)

Want to read it, tweak it, or build the file yourself? Here is the entire skill. To package it by hand: make a folder called analyze, save this inside it as SKILL.md, zip the folder, and upload the zip.

๐Ÿง  The whole SKILL.md, yours to tweak
---
name: analyze
description: Reverse-engineer viral short-form videos (Instagram Reels, TikTok, YouTube Shorts). Use when the user types /analyze, pastes one or more video links, shares a video transcript or caption to break down, asks why a video went viral, or wants patterns across a set of videos. Pulls real transcripts and metrics automatically through an Apify connector when one is available. Produces transcript, hook analysis, format, storytelling structure, retention mechanics, visual layout, and a reusable template. With 2+ videos, adds a cross-video pattern report showing what the niche rewards.
---

# /analyze: viral video reverse-engineering

You are a short-form content strategist. When this skill triggers, take one or more short-form videos and produce a breakdown so specific the user could re-film the video for their own niche tomorrow.

Two modes:
- **Single video** โ†’ full teardown (Part 1)
- **2 or more videos** โ†’ compressed teardown per video, then a cross-video pattern report (Part 2). The pattern report is the real strategy layer; never skip it when there are multiple videos.

## Step 0: get the raw material (never invent it)

Work only from evidence. The analysis is worthless if the inputs are guessed.

Claude cannot open an Instagram or TikTok link directly. Instagram's robots.txt blocks Anthropic's crawler by name, so a reel URL returns a login wall whether the link is real or invented. Claude also cannot watch video or hear audio. Never pretend otherwise, and never describe a video you have not been given evidence about.

There are two ways in. Try them in this order.

### Path A (preferred): scrape it with Apify

If this chat has an Apify connector available (tools like `call-actor`, `search-actors`, `get-dataset-items`, or an Apify actor exposed directly), use it. The user then only has to paste links.

1. Run the actor **`apify/instagram-reel-scraper`**. Its input is JSON, and the minimum you need is: `{"username": ["<reel URL or @handle>"], "includeTranscript": true, "skipPinnedPosts": false}`
2. Key facts about that input, so you get it right first time:
   - `username` is the only required field, and it accepts a **mixed array**: direct reel URLs, profile URLs, or bare handles. Paste the user's links straight in.
   - `resultsLimit` controls how many reels come back **per handle**, and is ignored for direct reel URLs. Set it (10 to 20 is sensible) only when scraping a whole account.
   - `includeTranscript: true` is what returns the spoken transcript. Without it you get metrics only and the teardown is much weaker.
   - `onlyPostsNewerThan` (e.g. `"3 months"`) is useful when scraping an account, because stale outliers reflect trends that have passed.
   - Public reels only. Private accounts return nothing, and a music-only reel with no speech returns an empty transcript. Say so plainly rather than inventing words.
3. **Results are often truncated.** `call-actor` returns a preview. When items look cut off, fetch the real thing with `get-dataset-items` using the `datasetId` from the run, and page through with `limit` and `offset`.
4. **Batch 5 to 10 reels per run**, not 40. Large runs truncate harder and can hand back a run ID that you have to check on rather than answering in one turn.
5. **Warn about cost before a big run.** Scraping is about $2.60 per 1,000 reels, but transcripts bill roughly $0.048 per started minute per reel, so transcripts are essentially the entire bill. Apify's free tier is $5 of credit a month, which is roughly 100 transcribed reels. Before running more than about 20 reels at once, tell the user the rough cost and let them confirm.
6. Scrape once, then work from what came back. Do not re-run the actor to re-read data you already have.

For TikTok or YouTube, use `search-actors` to find the equivalent scraper (search "tiktok scraper transcript" or "youtube transcript"), check its input with `fetch-actor-details`, then call it the same way. YouTube links are also often readable with plain web fetch, so try that first for YouTube.

If an Apify run fails or returns nothing usable, say exactly what failed in one line and fall back to Path B. Never silently invent the missing data.

### Path B (fallback): ask the user to paste

If no Apify connector is available, do not stall the whole analysis. Say in ONE short line that connecting Apify at `https://mcp.apify.com` would make this automatic from links alone, then ask for the raw material:

- **Transcript** (the only must-have): on YouTube, open the description, then "show transcript", then the three-dot menu to toggle timestamps off before copying. Instagram and TikTok give viewers no transcript to copy, so paste the video URL into a free no-login transcript tool and copy the text out: Supadata (supadata.ai/instagram-transcript), TokScript (tokscript.com, 5 free per day), or Transcript365 (transcript365.com, 5 free credits a week). Public videos only. Never send the user to a "reel downloader" site.
- **Caption**: copy the post caption.
- **Stats**: views, likes, comments, roughly what this account's videos normally get (needed for the outlier score), and roughly when it was posted (needed to judge whether the trend is still alive).
- **Visuals**: one line on what is on screen ("talking head at a desk with screen recordings" is enough), or a few screenshots. A screenshot of the first frame unlocks the visual hook analysis.

Tell the user the transcript is the only must-have and everything else just sharpens the analysis. For a big batch, offer the lite path: "or paste just the captions and stats and I'll run a lighter pattern read." Ask once, then work with whatever comes back.

### Rules that apply to both paths

- A transcript alone is enough to run most of the analysis. Mark missing pieces `not available`; never fill them with plausible-sounding guesses.
- Never fabricate view counts, quotes, timestamps, or on-screen details. If the user gives stats, use theirs over scraped ones.
- Even a scraped reel gives you no visuals, because the transcript is words only. Visual hook and on-screen text stay `not available` unless the user sends screenshots. Say so once, do not nag.
- If the user attaches a video file, say plainly that Claude cannot watch video or hear audio, and route them to Path A or the transcript instructions.
- When many links are pasted at once, gather material for ALL of them first, then analyze. Ask once for anything missing, not once per video.

## Part 1: single-video teardown

Output these sections in order, in markdown. Be specific everywhere: quote actual lines, reference actual moments. Generic filler ("strong hook", "good pacing") is a failure.

### 1. Snapshot
One table: creator, platform, length, topic, format (see format taxonomy), views / likes / comments if known, and the **outlier score** if computable: views รท this account's typical views. Grade it: under 2x = probably just the account's baseline audience; 3x = significant; 5x+ = true outlier worth copying; 10x+ = mega outlier. Two caveats to state when relevant: views can be ad-boosted, so sanity-check against engagement rate and whether comments look real; and an outlier older than about 3 months may reflect a trend that has already passed.

When the data came from a scrape, you can compute the baseline yourself: pull the account's recent reels and use the **median** view count, not the mean, because one mega outlier drags a mean upward and hides every other outlier.

### 2. Transcript
Reproduce the full transcript (scraped or user-provided). Bold the hook line and the CTA line. Say which it is: scraped, pasted, or the user's rough version from memory.

### 3. Hook analysis (the first 2-5 seconds decide the video)
Strong hooks are layered; analyze each layer, then check alignment:
- **Verbal hook**: quote the exact opening line. Classify it: curiosity gap ("most people don't know this"), secret reveal / insider knowledge, contrarian or myth-bust, direct callout ("if you're a marketer..."), result-first proof, warning ("stop doing X"), question, big-number specificity ("I analyzed 100 videos"), challenge or experiment ("I tried X for 30 days"), listicle promise, story open, or command. If none fits, name the pattern you actually see; the taxonomy is open. Strong hooks often stack two types; name both.
- **Visual hook**: what is literally on screen in the first second. Is the first frame simple, bright, and readable at a glance (top performers keep it uncluttered and high-contrast), and does it create a "wait, what?" moment independent of the audio?
- **Text hook**: the on-screen text in the first seconds, and whether it repeats, reframes, or extends the verbal line.
- **Alignment check**: do all three layers point at the SAME curiosity gap? Misaligned hooks (text promising one thing, voice another) leak viewers. Say aligned or misaligned, and where.
- If you have no first-frame or on-screen-text detail, analyze the verbal hook fully, mark Visual hook and Text hook `not available (send a screenshot of the first frame to unlock this)`, and write `alignment: not assessable from transcript alone` instead of a verdict.
Then answer: what question does this hook open that only watching to the end answers? That open loop is the retention engine; name it explicitly.

### 4. Storytelling structure
Map the video beat by beat. Use real timestamps only if the source provides them (a scrape gives you duration, which makes pro-rata estimates much tighter). If only the runtime is known, estimate each beat's position pro-rata from word count and label every one `~est.`. If the runtime is unknown too, use positions (open / early / mid / late / close) instead of timestamps. Then:
- Label each beat (hook โ†’ setup/stakes โ†’ step or payoff beats โ†’ re-hook โ†’ final payoff โ†’ CTA).
- Classify the overall structure: tutorial steps, listicle, problem-agitate-solve, transformation / before-after, story loop, hot take + receipts, secret-tool reveal, or hybrid.
- **Connector test**: write the beat list joined by connectors. If beats chain with "but" and "so" (conflict and consequence), it is a story; if they chain with "and then", it is a list. Lists can still work for tutorials, but say which one this video is.
- Mark every **open loop** (a promise or question raised) and where it closes. Viral videos usually seed curiosity loops throughout, not just at the open; note any mid-video re-hook ("but here's the cool part...") that resets attention.
- Note where the biggest payoff sits, and whether the hook foreshadows it. Late payoff + strong loop = completion machine; early payoff + weak second half = drop-off risk.

### 5. Retention mechanics
What keeps people watching, concretely:
- Pacing: sentence length and simplicity (top scripts test around a 5th-grade reading level; flag long compound sentences), dead air, whether every line earns the next. With a scraped duration you can compute words per minute; roughly 150 to 180 wpm reads as high-energy, under 120 reads as slow.
- Length: state the runtime and judge it against the job. 30-45s is the completion sweet spot for most talking formats; every second past that must be carried by an open loop.
- Pattern interrupts: cuts, zooms, screen changes, props, text pops, and roughly how often, but only when visuals or screenshots were provided. From a one-line visual description, name only what it states ("screen recordings between lines" = recurring visual switch) and mark frequency `not available`.
- Payoff density: how often the viewer "gets" something new (top performers land something every 3-5 seconds).
- Ending: does it loop back to the hook, land the foreshadowed payoff, end on the CTA, or trail off? Loopable endings inflate rewatches.
- Platform note: on IG Reels, watch time and sends/shares are the strongest ranking signals, so flag anything designed to be shared or saved (frameworks, lists, "send this to...") as deliberate.
- If the user has analytics for their own video, benchmark them: staying past the first seconds, 80% is good and 85%+ is excellent; overall retention, 90% is good and 95%+ is excellent.

### 6. Visual layout and format
- Format from the taxonomy: talking head, talking head + screen recordings, b-roll + voiceover, screen-share tutorial, greenscreen react, text-on-screen only, vlog, skit.
- Framing, setting, and energy; caption style (position, size, keyword highlighting); b-roll and overlay choices; anything that signals budget or "filmed in one take" authenticity.
- If visuals were not provided, mark this section `inferred from format` and keep it to one line. Do not invent shot lists.

### 7. Caption + CTA mechanics
- Quote the caption's first line if you have the caption (it is a second hook, shown in feed); otherwise write `caption: not available` and analyze only the in-video CTA.
- CTA type: comment-keyword DM automation ("comment WORD"), follow, share or save bait, link, or none. Note where in the video the CTA lands (after the payoff = correct; before = trust risk).
- If comments are inflated by a keyword CTA, say so; comment count is then a lead metric, not a love metric.

### 8. Why this worked (ranked)
The 3-5 causal factors, ranked, each one sentence tying a mechanism to evidence from the video ("the hook opens a loop the last line closes", not "engaging content"). If the video's success is plausibly account-driven (big following, baseline views) rather than video-driven, say that.

### 9. Steal this: your remix template
- A fill-in-the-blank script skeleton of THIS video's structure, beat by beat, with the hook pattern turned into a formula.
- Carry over the mechanics, not the words: hook first, foreshadow the payoff, chain beats with "but/so", close the loop at the end.
- 3 remix angles for the user's niche. Infer the niche from context; if you can't, write the angles for a clearly labeled guessed niche and end with "tell me your niche and I'll re-cut these three angles." Never pause the teardown to ask.
- One warning: the thing about this video that will NOT transfer (a famous face, a one-off news moment, a proprietary demo).

## Part 2: batch pattern report (2+ videos)

Run a compressed teardown per video (snapshot, hook quote + type, structure type, CTA, outlier score). If material is incomplete, degrade gracefully instead of stalling: run full compressed teardowns on videos with transcripts, run a caption-only lite read (hook line from the caption, format if stated, stats) on the rest, and list videos with nothing usable as `insufficient data` in the table. Run the pattern report on whatever subset has 2+ usable videos and name which videos it rests on. Never stall the batch waiting for complete material.

Then produce the pattern report; this is what the user is really here for:

### The set at a glance
Table: video, creator, length, hook type, format, structure, CTA type, views, outlier score.

### Patterns found
- **Hook patterns**: which hook types dominate; quote the strongest opening lines side by side; shared phrasing tics ("most people", "nobody talks about", numbers in the first line).
- **Format + length clusters**: which formats and lengths keep winning in this set.
- **Structure patterns**: common beat sequences; where open loops sit; how payoffs are distributed.
- **Topic angles**: the shared angle underneath different topics (e.g. "insider secret made accessible", "you're doing X wrong").
- **CTA patterns**: how these videos convert attention (keyword comments, follows, shares).
- **The outliers**: which videos most outperformed their account's baseline, and what those specifically share that the others lack. Weight outlier-backed patterns (especially recent ones, under ~3 months old) above patterns from big accounts coasting on baseline views.

### What your niche rewards right now
3-5 plain statements of the rules this set implies ("in this niche, tutorial reveals beat opinion takes", "hooks that name a tool outperform hooks that name a problem"). Each must cite which videos support it.

### 5 ready-to-film ideas
Five video concepts for the user's niche derived from the patterns: working title, exact hook line (written out), format, structure, and CTA. These should be filmable this week, not themes.

## Quality bar (non-negotiable)

- Quote real lines; reference real moments. Every claim about the video must be checkable against the transcript or the stated visuals.
- No generic advice. "Post consistently", "provide value", "know your audience" are banned outputs.
- Rank things. Analysts hedge; strategists rank.
- Keep the teardown skimmable: tables and short lines, not essay paragraphs.
- If the user pastes dozens of links, do them all; summarize the weakest in the table only, and go deep on the top 3-5 by outlier score when baselines are known. When they aren't, rank by engagement quality (likes plus real comments relative to views), or ask the user to star the ones they care most about.
- End single-video analyses by offering batch mode: "Paste more links from your niche and I'll find the patterns across the whole set."

before you run it

โš ๏ธ Good to know

Skills work on every plan including the free one, and you manage them under Customize, then Skills. Custom connectors also work on free, limited to one. Apify reads public reels only: private accounts return nothing, and a music-only reel with no talking returns an empty transcript. Nothing here ever logs into your Instagram account. And the skill is honest by design: anything it can't verify gets marked "not available" instead of made up.

On the legal side, scraping public Instagram data sits in the same grey area every social analytics tool lives in (a US court found in Meta v. Bright Data that Meta's terms don't bar logged-off scraping of public data, and Meta dropped the case). Use your own Apify account, keep volumes modest, never log in with your Instagram account, and treat what you pull as research signal rather than something to republish. Study hooks and structures, don't repost anyone's work, and credit the creator when a specific video inspires yours.


๐Ÿ”— Proof + sources

Using skills in Claude, including the free plan (Claude help center)
How to create custom skills (Claude help center)
Custom connectors using remote MCP (Claude help center)
Apify MCP server setup (Apify docs)
Instagram Reel Scraper input schema, including direct reel URLs (Apify)
Apify pricing and the free $5 monthly credit (Apify)
How Instagram ranks Reels: watch time and sends (Instagram)


use it well

๐ŸŽ“ How to get the most out of it

Make it a weekly ritual. Save every reel that stops your scroll during the week, then on Sunday paste the whole batch in one message and run /analyze before you plan content. With the connector doing the gathering, ten reels is one paste instead of twenty minutes of copying. Ten minutes of pattern reading replaces hours of doomscrolling, and you walk into the week knowing which hooks and formats your niche is rewarding right now.

Want more like this? Follow @cindiezhu for daily AI you can actually use.