YouTube transcripts, search, channels and playlists for AI agents, by transcriptapi.io.
Call this server's tools from your browser. Nothing to install.
Bearer token with your TranscriptAPI key. Free at https://transcriptapi.io/login
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.
List the most recent uploads of a YouTube channel, newest first. Accepts a channel id (UC…), a handle (@name) or a channel URL. Returns ids, titles, durations, view counts and publish dates.
List the most recent uploads of a YouTube channel, newest first. Accepts a channel id (UC…), a handle (@name) or a channel URL. Returns ids, titles, durations, view counts and publish dates.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| channel* | string |
{
"type": "object",
"title": "get_channel_videosArguments",
"required": [
"channel"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"channel": {
"type": "string",
"title": "Channel"
}
}
}List the videos in a YouTube playlist, in playlist order. Accepts a playlist URL (anything with list=…) or the playlist id. Returns ids and titles for get_youtube_transcript.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| playlist* | string |
{
"type": "object",
"title": "get_playlist_videosArguments",
"required": [
"playlist"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 50
},
"playlist": {
"type": "string",
"title": "Playlist"
}
}
}Fetch the transcript (captions/subtitles) of a YouTube video as text. Accepts a watch URL, youtu.be link, Shorts link or bare 11-character video id. Returns the spoken text with timestamps grouped in ~30 s blocks by default; format 'text' is prose without timestamps, 'srt'/'vtt' are subtitle files, 'json' is raw segments with start/duration. Works with creator-uploaded and auto-generated captions. translate_to translates the transcript with AI (extra credits, scales with length) — omit unless asked.
| Argument | Type | Description |
|---|---|---|
| video* | string | |
| format | string | |
| language | string | |
| translate_to | any |
{
"type": "object",
"title": "get_youtube_transcriptArguments",
"required": [
"video"
],
"properties": {
"video": {
"type": "string",
"title": "Video"
},
"format": {
"type": "string",
"title": "Format",
"default": "timestamped"
},
"language": {
"type": "string",
"title": "Language",
"default": "en"
},
"translate_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Translate To",
"default": null
}
}
}Search for videos inside one YouTube channel by keyword — 'find the video where <channel> talks about <topic>'. Accepts a channel id, @handle or channel URL.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | |
| channel* | string |
{
"type": "object",
"title": "search_channel_videosArguments",
"required": [
"channel",
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10
},
"query": {
"type": "string",
"title": "Query"
},
"channel": {
"type": "string",
"title": "Channel"
}
}
}Search YouTube for videos by keyword. Returns video ids, titles, channel names, durations and view counts. Use a returned id with get_youtube_transcript to read it.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string |
{
"type": "object",
"title": "search_youtubeArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10
},
"query": {
"type": "string",
"title": "Query"
}
}
}