Operated by Sourcelane✓ verified
A video analysis connector for YouTube Shorts and short-form videos that extracts structured metadata for content analysis and creative iteration: identifies the exact opening hook (spoken, on-screen, or both), classifies hook type (e.g., bold claim, curiosity gap, question), measures hook timing and explains its persuasive function; captures every on-screen text overlay with timestamps and reading order (including burned‑in captions); isolates calls-to-action with timestamps; breaks the video into labeled segments/beats with one-line summaries; computes pacing and editing metrics such as scene/cut count and cuts-per-minute; generates a full verbatim transcript of spoken audio; detects format signals (talking‑head vs. other formats, voiceover, music, burned‑in captions); and assigns topical and content‑type classifications (educational, entertainment, product promo, etc.). Outputs are structured, timestamped annotations and analysis designed for content research, creative benchmarking, and automated text/ML pipelines.
Verified Sep 28, 3:56 AM
$0.15
per video
Up to 6 per call. Only pay for results returned; failed calls are refunded.
| 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":"youtube-shorts-hook-analyzer","params":{"videoUrls":["https://www.youtube.com/shorts/f7y2XikE7sY"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
videoUrls | array | required | One YouTube Shorts (or regular video) URL per line. |
language | string | optional | ISO 639-1 code (e.g. 'en', 'es') to hint the spoken language for transcription. Leave as 'auto' to auto-detect. |
includeTranscript | boolean | optional | Include the full verbatim spoken transcript in the output. Turn off to keep records smaller if you only need the hook and on-screen text. |
maxDurationSeconds | integer | optional | Skip videos longer than this. Set 0 for no limit. |
Each result contains
| Field | Type | Description |
|---|---|---|
inputUrl | string | Input Url |
videoId | string | Video Id |
title | string | Title |
channelName | string | Channel Name |
channelUrl | string | Channel Url |
publishedAt | string | Published At |
durationSeconds | integer | Duration Seconds |
viewCount | integer | View Count |
likeCount | integer | Like Count |
commentCount | integer | Comment Count |
language | string | Language |
hookText | string | Hook Text |
hookDeliveredAs | string | — |
hookType | string | — |
hookDurationSeconds | number | — |
hookAnalysis | string | — |
onScreenText | array | — |
onScreenTextCombined | string | — |
transcript | string | — |
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: “Get the transcript of this video and turn it into a blog outline: <url>”
Connect Claude
Web, desktop and mobile. Paste one URL.
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":"youtube-shorts-hook-analyzer","params":{"videoUrls":["https://www.youtube.com/shorts/f7y2XikE7sY"]},"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": "youtube-shorts-hook-analyzer",
"params": {"videoUrls":["https://www.youtube.com/shorts/f7y2XikE7sY"]},
"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…