Operated by Sourcelane✓ verified
Monitor YouTube channels for new uploads, Shorts and live streams. Each scheduled run outputs only videos new since the last run, with views and duration.
Monitors lists of YouTube channels on a schedule and detects videos that are new since the previous run, including short-form Shorts and live streams; for each newly detected upload it returns rich metadata such as identifiers and watch URL, title, description, thumbnail, exact publish and update timestamps, detection timestamp, view and like counts, duration in seconds, content category, channel identifiers and title/URL, flags indicating Short or live stream and the live state and start time. The connector operates without using YouTube API quota, login, or cookies, and uses a persistent named state store to remember previously reported videos so each run outputs only uploads that appeared since the last run. It inspects recent uploads per channel each run and reports live streams when they are first detected.
Verified Oct 25, 10:11 PM
$0.003
per new video
Up to 100 per call. Only pay for results returned; failed calls are refunded.
New video alerts
Be first to react, comment or share when a creator posts
Competitor monitoring
Track every upload from rival brands and channels
Influencer and sponsorship tracking
Log every video published by creators you work with
Content curation and newsletters
Collect fresh videos from a list of channels on a schedule
Automation triggers
Start transcription, summarization or social posting workflows the moment a video goes live
Shorts and live stream tracking
Monitor only Shorts, only long-form uploads, or include live streams
YouTube channels to watch, one per line: channel URLs, @handles or UC...
Name of the key-value store that remembers which videos were already reported, so each scheduled run only out…
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-new-upload-monitor","params":{"channels":["@mkbhd","@veritasium"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
channels | array | required | YouTube channels to watch, one per line: channel URLs, @handles or UC... channel IDs. |
firstRunBehavior | string | optional | What to do the first time a channel is checked. Baseline remembers its current videos so that only uploads published after this run are reported. Output the latest videos returns up to 15 of the channel's most recent uploads immediately. |
includeShorts | boolean | optional | Report new YouTube Shorts as well as regular videos. |
includeLiveStreams | boolean | optional | Report new live streams (scheduled, live now or ended). Turn off to only get regular uploads and Shorts. |
maxVideosPerChannel | integer | optional | Only the newest N uploads of each channel are checked on each run (up to 15). |
stateStoreName | string | optional | Name of the key-value store that remembers which videos were already reported, so each scheduled run only outputs new uploads. Use a different name for each independent monitor (e.g. one per schedule or client). Letters, digits and hyphens only. |
Each result contains
| Field | Type | Description |
|---|---|---|
videoId | string | — |
url | string | Video URL |
title | string | Title |
channelId | string | — |
channelTitle | string | Channel |
channelUrl | string | — |
publishedAt | string | Published |
updatedAt | string | — |
description | string | — |
thumbnailUrl | string | Thumbnail |
views | integer | Views |
likes | integer | Likes |
durationSeconds | null | Duration (s) |
isShort | boolean | Short |
isLiveStream | null | — |
liveStatus | null | Live status |
liveStartedAt | null | — |
category | null | — |
sourceInput | string | — |
detectedAt | string | Detected |
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-new-upload-monitor","params":{"channels":["@mkbhd","@veritasium"]},"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-new-upload-monitor",
"params": {"channels":["@mkbhd","@veritasium"]},
"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…