{"serverId":"mcp-registry/co.bulktranscripts/youtube","tools":[{"name":"get_channel_videos","fixed":{"name":"get_channel_videos","description":"List the videos of a YouTube channel (id, title, duration, URL) without fetching transcripts. Accepts @handle, channel URL, or UC… channel id. Costs 1 credit. Chain into get_transcripts to bulk-extract.","inputSchema":{"type":"object","required":["channel"],"properties":{"limit":{"type":"integer","maximum":1000,"minimum":1,"description":"Max videos to list, default 100."},"channel":{"type":"string","description":"Channel @handle, URL, or UC… id."}}},"annotations":{"readOnlyHint":true},"title":"List a channel's videos"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"get_latest_videos","fixed":{"name":"get_latest_videos","description":"Get a channel's newest uploads (up to 15) with publish dates, from YouTube's RSS feed. Always free — no credit charged — so it is ideal for monitoring channels, daily recaps, and 'did they post this week?' checks. Accepts @handle, URL, or UC… id.","inputSchema":{"type":"object","required":["channel"],"properties":{"channel":{"type":"string","description":"Channel @handle, URL, or UC… id."}}},"annotations":{"readOnlyHint":true},"title":"Track new uploads (free)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_playlist_videos","fixed":{"name":"get_playlist_videos","description":"List every video in a YouTube playlist, in playlist order (courses and series keep their sequence). Accepts a playlist URL or bare playlist id. Costs 1 credit. Chain into get_transcripts to bulk-extract.","inputSchema":{"type":"object","required":["playlist"],"properties":{"limit":{"type":"integer","maximum":1000,"minimum":1,"description":"Max videos to list, default 100."},"playlist":{"type":"string","description":"Playlist URL or id (the list= value)."}}},"annotations":{"readOnlyHint":true},"title":"List a playlist's videos"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"get_transcript","fixed":{"name":"get_transcript","description":"Fetch the full transcript of one YouTube (or TikTok) video as clean text with metadata (title, channel, duration, upload date, language). Accepts a watch URL, youtu.be link, Shorts URL, or bare 11-character video id. Costs 1 credit the first time it is added to this account's library; repeat reads are free. Set include_segments to true only when per-line timestamps are needed (much larger output).","inputSchema":{"type":"object","required":["video"],"properties":{"fresh":{"type":"boolean","description":"Bypass the cache and re-extract (costs a credit). Default false."},"video":{"type":"string","description":"YouTube video URL or 11-character video id (TikTok video URLs also work)."},"language":{"type":"string","description":"Preferred caption language code, e.g. 'en' or 'de'. Defaults to 'en', falling back to whatever exists."},"include_segments":{"type":"boolean","description":"Include the timestamped segment list. Default false — the plain text is usually what you want."}}},"annotations":{"readOnlyHint":true},"title":"Get YouTube video transcript"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":287,"tokensAfter":287},{"name":"get_transcripts","fixed":{"name":"get_transcripts","description":"Fetch transcripts for up to 20 videos in one call — pass an array of YouTube URLs or ids. Each new library addition costs 1 credit; repeats from this account's library are free. Videos without captions are reported per-item and do not fail the batch. For whole channels or playlists, first list the videos with get_channel_videos / get_playlist_videos, then batch the ids through this tool. If the balance runs out, completed items are returned with partial=true and an out_of_credits stopped block.","inputSchema":{"type":"object","required":["videos"],"properties":{"videos":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Up to 20 YouTube video URLs or ids."},"language":{"type":"string","description":"Preferred caption language code. Default 'en'."}}},"annotations":{"readOnlyHint":true},"title":"Get many transcripts at once"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":229,"tokensAfter":229},{"name":"search_channel","fixed":{"name":"search_channel","description":"Search within one channel's uploads to find its videos on a topic — great for researching what a creator has said about something without listing the whole archive. Accepts @handle, channel URL, or UC… id. Costs 1 credit.","inputSchema":{"type":"object","required":["channel","query"],"properties":{"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Max results, default 10."},"query":{"type":"string","description":"Topic to search for within the channel."},"channel":{"type":"string","description":"Channel @handle, URL, or UC… id."}}},"annotations":{"readOnlyHint":true},"title":"Search inside a channel"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"search_youtube","fixed":{"name":"search_youtube","description":"Search YouTube by keyword for videos, channels, or playlists (set type). Returns titles, ids, and URLs — useful for research, discovery, and finding videos to transcribe. Costs 1 credit per search.","inputSchema":{"type":"object","required":["query"],"properties":{"type":{"enum":["video","channel","playlist"],"type":"string","description":"What to search for. Default video."},"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Max results, default 10."},"query":{"type":"string","description":"Search terms, e.g. 'claude code tutorial'."}}},"annotations":{"readOnlyHint":true},"title":"Search YouTube"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167}],"toolsChanged":7,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}