DEV Community

Cover image for Give your AI agent eyes on short-form video: the Reelyze API + skill for Claude & Cursor
Usama
Usama

Posted on • Originally published at getreelyze.com

Give your AI agent eyes on short-form video: the Reelyze API + skill for Claude & Cursor

Most social analytics tools hand your dashboard a pile of numbers. None of them let your AI agent look at a video and reason about why it underperformed. I wanted Claude and Cursor to be able to take a Reel URL and tell me what's wrong with the hook - so I exposed the engine behind Reelyze as a plain HTTP API and packaged a drop-in agent skill.

Here's how it works and how to wire it into your own agent.

What the API does

Give it a public Instagram Reel, TikTok, or YouTube Short URL, and it can:

  • Analyze the video frame-by-frame - hook strength, the first-3-second retention, scene-by-scene signals, and the exact seconds viewers are predicted to drop off, with a verdict and specific fixes.
  • Transcribe the spoken audio.
  • Download a clean MP4, or extract the audio as MP3.
  • Generate a full timed script (hooks → body → CTA, caption, hashtags, shot list) or a batch of content ideas from a topic.

The transcript, download, and audio tools are free and metered (50 calls/day per key), so you can build against them with nothing but an API key. Analyze, script, and ideas are on paid plans.

Auth

One Bearer key (rk_live_...), created in the Reelyze dashboard under API keys. Base URL is https://api.getreelyze.com. CORS is open, so it works from a backend, a browser tool, or any agent.

export REELYZE_API_KEY=rk_live_xxx
export REELYZE_BASE_URL=https://api.getreelyze.com
Enter fullscreen mode Exit fullscreen mode

The video tools are async (submit → poll)

The analysis isn't instant - it pulls frames, OCRs on-screen text, transcribes, and scores retention - so you submit a job and poll for it.

# 1) Submit
curl -s -X POST "$REELYZE_BASE_URL/v1/analyze" \
  -H "Authorization: Bearer $REELYZE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.instagram.com/reel/XXXX/"}'
# → {"job_id":"abc...","status":"queued","tool":"analyze","poll":"/v1/jobs/abc..."}

# 2) Poll every ~3s until completed
curl -s "$REELYZE_BASE_URL/v1/jobs/abc..." \
  -H "Authorization: Bearer $REELYZE_API_KEY"
# → {"job_id":"abc...","status":"completed","report_markdown":"# ...full report..."}
Enter fullscreen mode Exit fullscreen mode

The completed analyze job returns report_markdown - verdict, hook assessment, scene-by-scene retention, and the drop-off timestamps. Transcript/download/audio use the identical submit-then-poll shape; you just read transcript_text or artifact_url instead.

A tiny Node poller:

async function analyze(url) {
  const base = process.env.REELYZE_BASE_URL, key = process.env.REELYZE_API_KEY;
  const h = { Authorization: `Bearer ${key}`, "Content-Type": "application/json" };
  const { job_id } = await fetch(`${base}/v1/analyze`, {
    method: "POST", headers: h, body: JSON.stringify({ url }),
  }).then(r => r.json());

  for (let i = 0; i < 60; i++) {
    const job = await fetch(`${base}/v1/jobs/${job_id}`, { headers: h }).then(r => r.json());
    if (job.status === "completed") return job.report_markdown;
    if (job.status === "failed") throw new Error(job.error);
    await new Promise(r => setTimeout(r, 3000));
  }
  throw new Error("timed out");
}
Enter fullscreen mode Exit fullscreen mode

The content tools are synchronous

/v1/script and /v1/ideas return the result directly - no polling.

curl -s -X POST "$REELYZE_BASE_URL/v1/script" \
  -H "Authorization: Bearer $REELYZE_API_KEY" -H "Content-Type: application/json" \
  -d '{"topic":"how I edit reels in 10 minutes","duration_seconds":30,"language":"English"}'
# → {"script":{ "hooks":[...], "script":[{timecode,label,spoken,on_screen}...],
#              "caption":"...", "hashtags":[...], "shot_list":[...] }}
Enter fullscreen mode Exit fullscreen mode

The agent skill (Claude / Cursor)

Instead of writing the poll loop yourself, drop in the skill file. It's a single self-contained SKILL.md (MIT-0) that teaches the agent the endpoints, the async pattern, and how to read the analysis report. Set one env var and the agent does the rest:

REELYZE_API_KEY=rk_live_xxx
Enter fullscreen mode Exit fullscreen mode

Then you just talk to your agent:

> audit this reel and tell me why it flopped: <url>
→ Verdict: strong concept, buried payoff.
→ Hook: weak - lost ~62% by 0:03.
→ Drop-off at 0:11: 3s of B-roll with no narration.
→ Fix: cold-open on the result; cut the intro.
Enter fullscreen mode Exit fullscreen mode

Because it's plain HTTP behind a Bearer key with open CORS, the same skill works from Claude, Cursor, a browser tool, or your own backend - no SDK, no install.

Why expose it as a skill, not just an API

The point isn't one call - it's chaining. An agent with this skill can transcribe → analyze → rewrite the hook → generate the next script in one flow, or compare two reels' hooks, or audit a competitor's winner and then draft your version informed by what the report found. The analysis becomes a step in a workflow instead of a tab you check.

Try it

The free tools (transcript, downloader, audio) work on any key at 50/day, and the first full analysis is free -getreelyze.com. Grab a key from the dashboard or the skill file from https://github.com/usamalatif/reelyze-skill.

If you're building creator tooling, I'd genuinely like feedback on two things: does the drop-off timestamp match what you see in your own retention graphs, and what would make the API more useful inside your own agent? Reply here or find me - Usama.

Top comments (0)