Operated by Sourcelane✓ verified
A YouTube channel video listing scraper that enumerates every video in a channel's catalog and produces one record per video containing canonical identifiers and watch URLs, titles, video length in seconds (with live streams indicated), an approximate upload date rounded to the day, the highest-resolution thumbnail URL, flags for live or Short content, channel identity information, and the video's position in the channel listing. The connector paginates across a channel's entire back catalog using an index-based cursor that can be resumed across runs, supports fetching standard uploads, Shorts, and live/past-live streams via separate channel tabs, and returns items in YouTube's default newest-first order.
Verified Sep 28, 3:56 AM
$0.001
per video
Up to 100 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-channel-videos-scraper","params":{"channelUrl":"@mkbhd","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
channelUrl | string | required | Channel URL or handle. Accepts @handle, /c/, /channel/UC..., /user/, or full URL. |
tab | string | optional | Which channel tab to list. Videos = regular long-form uploads; Shorts = vertical short videos; Live = past live streams. |
maxItems | integer | optional | Maximum videos to return in this run. Set 0 for unlimited (capped at 5000 per run as a safety net - chain runs with Page ID for more). Capped at 100 per call. |
pageId | string | optional | Paste NEXT_PAGE_ID from the previous run's Key-value store to fetch the next page of videos. Leave empty to start from the most recent video. |
Each result contains
| Field | Type | Description |
|---|---|---|
videoId | string | Video Id |
url | string | Url |
title | string | Title |
durationSeconds | integer | Duration Seconds |
uploadDate | string | Upload Date |
thumbnailUrl | string | Thumbnail Url |
isLive | null | Is Live |
isShort | boolean | Is Short |
channelId | string | Channel Id |
channelName | string | Channel Name |
channelUrl | string | Channel Url |
listIndex | integer | List Index |
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-channel-videos-scraper","params":{"channelUrl":"@mkbhd","maxItems":5},"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-channel-videos-scraper",
"params": {"channelUrl":"@mkbhd","maxItems":5},
"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…