Free YouTube transcripts, no API key: videos, channel lists, latest uploads, bulk download links.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
For a YouTube channel or playlist URL, returns a prefilled scripthaul.com link where the user can download every transcript as a ZIP for free. Bulk jobs cannot run over this keyless MCP server; they need the website. Costs 0 credits. Example prompt: "Give me a download link for every transcript in https://www.youtube.com/@TED."
YouTube channel or playlist URL (also accepts @handles).
For a YouTube channel or playlist URL, returns a prefilled scripthaul.com link where the user can download every transcript as a ZIP for free. Bulk jobs cannot run over this keyless MCP server; they need the website. Costs 0 credits. Example prompt: "Give me a download link for every transcript in https://www.youtube.com/@TED."
| Argument | Type | Description |
|---|---|---|
| url* | string | YouTube channel or playlist URL (also accepts @handles). |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube channel or playlist URL (also accepts @handles)."
}
}
}Read up to the newest 15 public RSS entries from exactly one channel or playlist, cached for ten minutes. Costs 0 credits and no cold-fetch allowance. Separate allowance: 30 requests per IP per day shared across channels and playlists, including cached reads; resets at midnight UTC. Use a UC channel ID, an already-resolved channel alias, or a public playlist ID/URL; an unknown handle must first be resolved on the keyed API. This is a recent window, not a complete inventory. Example prompt: "What did channel UCAuUUnT6oDeKwE6v1NGQxug upload recently?"
| Argument | Type | Description |
|---|---|---|
| channel | string | UC channel ID, a /channel/UC… URL, or an already-resolved alias. |
| playlist | string | Public YouTube playlist ID or URL. |
{
"type": "object",
"oneOf": [
{
"required": [
"channel"
]
},
{
"required": [
"playlist"
]
}
],
"properties": {
"channel": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "UC channel ID, a /channel/UC… URL, or an already-resolved alias."
},
"playlist": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Public YouTube playlist ID or URL."
}
},
"additionalProperties": false
}Fetch the transcript of a single YouTube video by URL or 11-character video ID. Serves the permanent cache instantly when available and otherwise fetches from YouTube (uncached fetches are limited per IP per day). Formats: clean text, timestamped, both, srt, vtt, md, json. Costs 0 credits. Example prompt: "Get the transcript of https://youtu.be/jNQXAC9IVRw."
| Argument | Type | Description |
|---|---|---|
| format | string | Output format. Default "clean" (plain text). "timestamped" prefixes each line with a timestamp; srt/vtt are subtitle files; json is structured. |
| language | string | Preferred caption language code such as "en" or "pt-BR". Optional; defaults to English with fallback to whatever track exists. |
| video_url* | string | YouTube video URL (watch, youtu.be, shorts, embed, live) or a bare 11-character video ID. |
{
"type": "object",
"required": [
"video_url"
],
"properties": {
"format": {
"enum": [
"clean",
"timestamped",
"both",
"srt",
"vtt",
"md",
"json"
],
"type": "string",
"description": "Output format. Default \"clean\" (plain text). \"timestamped\" prefixes each line with a timestamp; srt/vtt are subtitle files; json is structured."
},
"language": {
"type": "string",
"description": "Preferred caption language code such as \"en\" or \"pt-BR\". Optional; defaults to English with fallback to whatever track exists."
},
"video_url": {
"type": "string",
"description": "YouTube video URL (watch, youtu.be, shorts, embed, live) or a bare 11-character video ID."
}
}
}List the videos of a YouTube channel or playlist: date, video ID, and title for each. Use this to answer questions about a channel — pick the relevant videos by title, then call get_transcript for each one. Listings are cached for a few hours; a fresh enumeration counts against the same daily allowance as uncached fetches. Costs 0 credits. Example prompt: "List the videos in https://www.youtube.com/@TED."
| Argument | Type | Description |
|---|---|---|
| url* | string | YouTube channel or playlist URL (also accepts @handles). |
| limit | integer | Maximum videos to list, newest first for channels. Default 100, maximum 200. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube channel or playlist URL (also accepts @handles)."
},
"limit": {
"type": "integer",
"description": "Maximum videos to list, newest first for channels. Default 100, maximum 200."
}
}
}