Operated by Sourcelane✓ verified
Reverse-engineer why a short video works: opening hook and hook type, every on-screen text overlay, CTAs, segment structure, cut pacing and transcript.
Analyzes short-form videos (Instagram Reels and TikTok) to reverse-engineer why a clip engages viewers by extracting structured, keyword-rich analysis: verbatim opening hooks and classified hook types and delivery modes; timestamped on-screen text overlays merged into searchable phrases and combined transcripts of overlays; detected calls-to-action with timings and counts; a segment-by-segment, timestamped content structure (e.g., hook → problem → solution → proof → CTA); edit-pacing metrics (scene changes, cuts per minute) and production format signals (talking head, voiceover, music); content-type classification and topic keyword extraction; post metadata and engagement metrics; plus a full verbatim transcript. Outputs are produced as structured records for sorting, filtering and downstream analysis and support videos up to 150 MB.
Verified Sep 28, 3:55 AM
$0.10
per video
Up to 10 per call. Only pay for results returned; failed calls are refunded.
Ad creative research
Build a swipe file of high-performing hooks sorted by hook type and engagement metrics
Hook pattern mining
Analyze top competitor videos to identify dominant opening formulas
Content strategy
Compare structure, pacing and CTA placement against outperforming creators
UGC and creator briefing
Provide creators concrete, evidence-based hook formats and segment guidance
Competitive monitoring
Track changes in competitor messaging and offers across video output
Search and repurposing
Find videos containing specific on-screen phrases (not just caption text)
Instagram reel or TikTok video URLs to analyse, up to 50 per run.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"short-video-hook-analyzer","params":{"videoUrls":["https://www.tiktok.com/@tiktokcreators/video/7630922277026090254"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
videoUrls | array | required | Instagram reel or TikTok video URLs to analyse, up to 50 per run. Both platforms can be mixed in one run. |
language | string | optional | ISO 639-1 code of the spoken language, e.g. 'en' or 'es'. Leave as 'auto' to detect it automatically. |
includeTranscript | boolean | optional | Include the complete verbatim transcript of the spoken audio alongside the creative analysis. |
Each result contains
| Field | Type | Description |
|---|---|---|
inputUrl | string | Input Url |
platform | string | Platform |
videoId | string | Video Id |
postUrl | string | Post Url |
username | string | Username |
fullName | string | Full Name |
caption | string | Caption |
postedAt | string | Posted At |
durationSeconds | integer | Duration Seconds |
likeCount | integer | Like Count |
commentCount | integer | Comment Count |
playCount | integer | Play Count |
shareCount | integer | — |
engagementRate | number | — |
language | string | — |
hookText | string | — |
hookDeliveredAs | string | — |
hookType | string | — |
hookDurationSeconds | integer | — |
hookAnalysis | string | — |
onScreenText | array | — |
onScreenTextCombined | string | — |
transcript | null | — |
ctas | array | — |
ctaCount | integer | — |
structure | array | — |
sceneChanges | integer | — |
cutsPerMinute | number | — |
hasVoiceover | boolean | — |
hasMusic | boolean | — |
hasBurnedInCaptions | boolean | — |
isTalkingHead | boolean | — |
contentType | string | — |
topics | array | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Transcribe this video and give me timestamps for every product mention: <url>”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"short-video-hook-analyzer","params":{"videoUrls":["https://www.tiktok.com/@tiktokcreators/video/7630922277026090254"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "short-video-hook-analyzer",
"params": {"videoUrls":["https://www.tiktok.com/@tiktokcreators/video/7630922277026090254"]},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…