YouTube Transcripts
Transcripts from YouTube videos, whole channels and playlists for AI agents, with bulk ZIP export.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_transcript
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"youtube-transcripts": {
"url": "https://api.youtubetranscripts.fbetteo.com/mcp"
}
}
}Remote endpoints
https://api.youtubetranscripts.fbetteo.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢get_transcript(video_url, include_timestamps)
Return the transcript for a single YouTube video URL or ID.
Input Schema
{
"type": "object",
"properties": {
"video_url": {
"type": "string",
"description": "YouTube video URL or video ID."
},
"include_timestamps": {
"type": "boolean",
"description": "Include transcript timestamps.",
"default": false
}
},
"required": [
"video_url"
],
"additionalProperties": false
}🟢get_channel_info(channel)
Return metadata for a YouTube channel before starting a job.
Input Schema
{
"type": "object",
"properties": {
"channel": {
"type": "string",
"description": "Handle, name, or ID."
}
},
"required": [
"channel"
],
"additionalProperties": false
}🟢list_channel_videos(channel, limit)
List a YouTube channel's videos with duration metadata, in the order channel jobs use (long-form, then Shorts, then livestreams; newest first). limit=N previews what start_channel_job with max_videos=N downloads; has_more tells if the channel has more.
Input Schema
{
"type": "object",
"properties": {
"channel": {
"type": "string",
"description": "Handle, name, or ID."
},
"limit": {
"type": "integer",
"description": "Maximum videos to return.",
"default": 100,
"minimum": 1,
"maximum": 2000
}
},
"required": [
"channel"
],
"additionalProperties": false
}⚪start_channel_job(channel, max_videos, include_timestamps, concatenate_all)
Start an async job that downloads channel transcripts.
Input Schema
{
"type": "object",
"properties": {
"channel": {
"type": "string",
"description": "Handle, name, or ID."
},
"max_videos": {
"type": "integer",
"description": "Optional maximum videos to process.",
"minimum": 1
},
"include_timestamps": {
"type": "boolean",
"default": false
},
"concatenate_all": {
"type": "boolean",
"default": false
}
},
"required": [
"channel"
],
"additionalProperties": false
}⚪start_playlist_job(playlist, max_videos, include_timestamps, concatenate_all)
Start an async job that downloads playlist transcripts.
Input Schema
{
"type": "object",
"properties": {
"playlist": {
"type": "string",
"description": "YouTube playlist URL or ID."
},
"max_videos": {
"type": "integer",
"description": "Optional maximum videos to process.",
"minimum": 1
},
"include_timestamps": {
"type": "boolean",
"default": false
},
"concatenate_all": {
"type": "boolean",
"default": false
}
},
"required": [
"playlist"
],
"additionalProperties": false
}🟢get_job_status(job_id)
Poll an async transcript job and get a download URL when ready.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Transcript job ID."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}🟢get_download_url(job_id)
Return the ZIP download URL for a completed job.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Transcript job ID."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}🔴cancel_job(job_id)
Cancel an async transcript job and refund unprocessed videos.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Transcript job ID."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}Community
Evidence