Operated by Sourcelane✓ verified
Extract full transcripts and timestamped captions from any YouTube video in your chosen language and export them as JSON or CSV.
A tool for extracting full plain-text transcripts and timestamped caption segments from YouTube videos, returning structured transcript text plus segment-level timing (milliseconds), language metadata (language codes, and whether captions are human-written or auto-generated), and a list of all available caption tracks per video. Outputs are suitable for search, summarization, LLM input, building chapter markers, and export to common structured formats.
Verified Sep 28, 3:56 AM
$0.0001
per transcript
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Content repurposing
Turn long videos into blog posts, newsletters, or social threads with timestamped quotes
SEO research
Analyze competitor video scripts and topics for keyword and topic gaps
Accessibility
Generate searchable text archives of training videos, lectures, and webinars
Language learning
Pull dual-language transcripts for the same video to build study material
Podcast and interview notes
Feed transcripts into summarizers to produce show notes and chapter markers
One or more YouTube video URLs.
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":"youtube-transcript-scraper","params":{"videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
videoUrls | array | required | One or more YouTube video URLs (youtube.com/watch?v=..., youtu.be/..., or youtube.com/shorts/...). Up to 10 per run. |
languages | array | optional | BCP-47 language codes in preference order, e.g. en, es, fr. The first language with available captions for a video will be used for the transcript and segments fields. |
preferManualCaptions | boolean | optional | When both manual and auto-generated captions exist for a language, use the human-written ones. Turn off to always pick whichever is available. |
Each result contains
| Field | Type | Description |
|---|---|---|
inputUrl | string | Input Url |
videoId | string | Video Id |
title | string | Title |
durationSeconds | integer | Duration Seconds |
uploader | string | Uploader |
language | string | Language |
isAutoGenerated | boolean | Is Auto Generated |
transcript | string | Transcript |
segments | array | — |
availableLanguages | array | Available Languages |
proxyUsed | string | Proxy Used |
status | string | Status |
error | null | — |
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. 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":"youtube-transcript-scraper","params":{"videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"]},"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-transcript-scraper",
"params": {"videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"]},
"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…