Skip to main content
Glama

TubePilot

Your AI Co-Pilot for YouTube

TubePilot is an MCP server that lets AI assistants fetch and analyze YouTube data. Get video info, extract transcripts, analyze channels, compare videos, and more.

Installation

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "tubepilot": {
      "command": "npx",
      "args": ["-y", "tubepilot"]
    }
  }
}

Other MCP Clients

npx tubepilot

Or add to any MCP-compatible client config with the command npx and args ["-y", "tubepilot"].

No API key required for basic video info and transcripts!

Related MCP server: youtube-mcp

What You Can Do

Video Analysis (No API Key)

Get info about any video:

"What is this video about? https://youtube.com/watch?v=dQw4w9WgXcQ"

Summarize or get an outline:

"Summarize this video for me" | "Give me an outline of this lecture"

Find specific moments:

"When do they talk about pricing?" | "Find where they mention React"

Analyze what happens at a timestamp:

"What happens at 1:05?" → Gets transcript + visual frame together for full context

Developer-focused analysis:

"Extract all code snippets and commands from this tutorial"
"What tech stack is used in this video?"

Comparison & Analytics (Requires API Key)

Compare multiple videos:

"Compare these 3 videos - which performed best and why?"
→ Side-by-side: views, likes, engagement rate, comments

Compare YouTube channels:

"Compare @mkbhd vs @LinusTechTips - subscriber counts, posting frequency, engagement"

Analyze a channel:

"Analyze @veritasium - posting patterns, avg views, top videos"

Playlist insights:

"Summarize this course playlist - total duration, topics covered, key videos"

Comment sentiment:

"What's the sentiment in the comments? Are people happy with this video?"

Tools

Free Tools (No API Key) - 27 Tools

Tool

Description

health_check

Check server health, API status, cache stats

get_video_info

Get video title, description, channel, duration, keywords

get_transcript

Extract full video transcript (requires captions enabled)

search_in_transcript

Find specific words/moments by timestamp

get_video_frames

Get visual frames/screenshots at regular intervals

get_frame_at_time

Get a video frame at a specific timestamp

list_caption_languages

List all available caption/subtitle languages

create_clip_url

Generate shareable timestamped URLs

get_video_moment

Power tool: Get transcript + visual frame at a timestamp together

find_moment_by_topic

Find when a topic is discussed, with clickable timestamps

Developer Tools

extract_code_snippets

Find CLI commands, code patterns, file paths in tutorials

get_tutorial_steps

Auto-extract step-by-step instructions from tutorials

find_tech_stack

Detect technologies, frameworks, libraries mentioned

convert_to_notes

Convert video transcript to structured markdown notes

find_github_links

Extract GitHub repos, npm packages, code resource links

Content Analysis

get_video_summary

Generate key points and structured summary

answer_from_video

Q&A - find relevant segments to answer questions

extract_links_mentions

Find URLs, @mentions, products, books referenced

get_video_outline

Auto-detect topic structure and create outline

Enhanced/Combo Tools

deep_analyze_video

POWER TOOL: Complete analysis (info + transcript + chapters + frame)

video_timeline

Visual timeline with frames at intervals

compare_moments

Compare same timestamp across 2-5 videos

merge_transcripts

Combine transcripts from multiple videos

analyze_short

Specialized YouTube Shorts analysis

detect_music

Detect if video is a music video, parse artist/song

get_hd_thumbnail

Get high-res thumbnail URLs (up to 1280x720)

get_video_chapters_free

Extract chapters from description (no API)

Extended Tools (Requires API Key) - 22 Tools

Tool

Description

Search & Discovery

search_videos

Search YouTube for videos, channels, playlists

get_related_videos

Find similar videos

search_by_hashtag

Find videos with a specific hashtag

get_trending

Trending videos by region/category

get_categories

List YouTube categories

Video Analysis

get_video_details

Full stats: views, likes, comments, tags

get_video_chapters

Extract chapter markers from description

get_video_stats_history

Get current stats with performance metrics

check_live_status

Check if video is live, upcoming, or regular

get_video_metadata_bulk

Get metadata for up to 50 videos in one call

compare_videos

Side-by-side stats comparison (2-10 videos)

Channel Analysis

get_channel_info

Channel subscribers, video count, description

get_channel_videos

List videos from a channel

get_shorts

Get YouTube Shorts from a channel

analyze_channel

Deep analytics: posting frequency, avg views, top content

compare_channels

Compare stats of 2-5 channels side by side

Playlists

get_playlist

Get playlist contents

export_playlist

Export playlist to JSON format

get_playlist_summary

Full analysis: duration, topics, key videos

Comments

get_video_comments

Fetch top/recent comments

get_comment_replies

Get replies to a specific comment

analyze_comments_sentiment

Analyze positive/negative comment sentiment

Limitations

TubePilot is a data reader, not a downloader or uploader:

Cannot Do

Can Do

❌ Download full videos/audio files

✅ Extract storyboard frames (screenshots)

❌ Upload, like, comment, subscribe

✅ Read public comments and stats

❌ Access private videos

✅ Access unlisted videos (with URL)

❌ Get transcripts without captions

✅ List available caption languages first

❌ Access creator revenue data

✅ Get public view/like/comment counts

❌ Bypass age restrictions

✅ Get thumbnails at all quality levels

Optional: Enable All Features

For search, detailed stats, and analytics, add a YouTube API key:

{
  "mcpServers": {
    "tubepilot": {
      "command": "npx",
      "args": ["-y", "tubepilot"],
      "env": {
        "YOUTUBE_API_KEY": "your_api_key"
      }
    }
  }
}

Get a free API key:

  1. Go to Google Cloud Console

  2. Create a project

  3. Enable "YouTube Data API v3"

  4. Create credentials → API Key

Development

npm install      # Install dependencies
npm run dev      # Run in development
npm run build    # Build for production
npm test         # Run tests (113 tests)
npm run format   # Format code

Documentation

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT

Available Tools

27 tools
analyze_shortA
Read-only

SHORTS-SPECIFIC TOOL: Specialized analysis for YouTube Shorts (<60 sec). Extracts hook timing, CTA patterns, words-per-second, hashtags, + visual frame. Use this instead of deep_analyze_video for Shorts. COMBINE WITH: get_shorts (API) to find Shorts from a channel first.

Inputs: videoId (required).

answer_from_videoA
Read-only

Search a video transcript to answer a specific question. Finds relevant segments and returns context. Use when user asks "does the video mention X?" COMBINE WITH: get_video_moment to see the visual at that timestamp, create_clip_url to share the exact moment.

Inputs: videoId (required), question (required), language.

compare_momentsA
Read-only

MULTI-VIDEO TOOL: Compare the same timestamp across 2-5 videos. See what different creators show/say at the same moment. Returns transcript + visual frames side by side. Great for comparing tutorials, reactions, or coverage of same event.

Inputs: videoIds (required), timestamp.

convert_to_notesA
Read-only

POWER TOOL: Convert a video transcript into structured markdown notes. Extracts key points, code snippets, and creates a developer-friendly summary. This combines transcript analysis + code extraction + structure detection. Use this for comprehensive tutorial documentation.

Inputs: videoId (required), language, includeTimestamps.

create_clip_urlA
Read-only

Generate a shareable YouTube URL that starts at a specific timestamp. Perfect for sharing specific moments in videos.

Inputs: videoId (required), startTime (required), endTime.

deep_analyze_videoA
Read-only

POWER TOOL: Complete video analysis in ONE call. Combines: get_video_info + get_transcript + get_video_chapters_free + extract_links_mentions + visual frame. Returns metadata, transcript stats, chapters, links, and a mid-video frame. USE THIS FIRST for thorough analysis - then use specific tools for deep dives.

Inputs: videoId (required), language.

detect_musicA
Read-only

Detect if a video is a music video and parse artist/song info. Use this BEFORE get_transcript - music videos often have lyrics as captions. Returns confidence score, artist, song title, and music type (official video, lyric video, live, cover, etc.).

Inputs: videoId (required).

extract_code_snippetsA
Read-only

Extract code snippets, CLI commands, and programming content from a video transcript. Perfect for developer tutorials. Detects: npm/yarn/pip commands, git commands, code patterns, file paths, URLs. COMBINE WITH: find_tech_stack for technologies used, find_github_links for repos, get_tutorial_steps for instructions. For complete dev notes, use convert_to_notes.

Inputs: videoId (required), language.

find_moment_by_topicA
Read-only

Find when a specific topic is discussed in a video. Searches transcript and returns timestamps with context. Use when user asks "when do they talk about X?" Returns multiple matches with surrounding text.

Inputs: videoId (required), topic (required), maxResults.

find_tech_stackA
Read-only

Find technologies, frameworks, libraries, and tools mentioned in a video. Detects programming languages, frameworks (React, Vue, Django, etc.), databases, cloud services, and dev tools. Great for tech talks and tutorials.

Inputs: videoId (required), language.

get_frame_at_timeA
Read-only

Get a video frame/screenshot at a specific timestamp. Use this when user asks "what happens at 1:02?" Returns an image URL that Claude can analyze with vision.

Inputs: videoId (required), timestamp (required).

get_hd_thumbnailA
Read-only

Get high-resolution thumbnail URLs for a video. Returns maxres (1280x720), sd (640x480), hq (480x360), and other quality options. Better than storyboard frames.

Inputs: videoId (required), quality.

get_transcriptA
Read-only

Extract the full transcript/captions from a YouTube video. Use this to understand video content, summarize videos, or answer questions about what was said. COMBINE WITH: get_video_frames for visual context, search_in_transcript to find specific moments, or get_video_info for metadata. TIP: Use list_caption_languages first to check available languages. Note: Only works for videos with captions enabled.

Inputs: videoId (required), language, withTimestamps.

get_tutorial_stepsA
Read-only

Extract step-by-step instructions from a tutorial video. Identifies numbered steps, "first/then/next" patterns, and instructional segments. COMBINE WITH: extract_code_snippets for code commands, find_github_links for source code, get_video_frames to see what they're doing visually.

Inputs: videoId (required), language.

get_video_chapters_freeA
Read-only

Extract chapters from video description without API key. Parses timestamp markers (0:00, 1:30, etc.) and their titles. Free alternative to get_video_chapters.

Inputs: videoId (required).

get_video_framesA
Read-only

Get visual frames/screenshots from a video at regular intervals. Use this to understand video content visually, especially for videos without captions (gameplay, music, documentaries). COMBINE WITH: get_transcript for text+visual analysis. For a specific timestamp, use get_video_moment instead (gets frame + transcript together). For a full timeline view, use video_timeline.

Inputs: videoId (required), count.

get_video_infoA
Read-only

Get basic information about a YouTube video: title, description, channel, duration, and keywords. Works without API key. START HERE for any video analysis - then use get_transcript for content or get_video_frames for visuals. For complete analysis in one call, use deep_analyze_video instead.

Inputs: videoId (required).

get_video_momentA
Read-only

COMBO TOOL: Get what's happening at a specific moment in a video. Returns BOTH the transcript text AND a visual frame together. Use this when user asks "what happens at 1:05?" For comparing same moment across videos, use compare_moments. For full video overview, use video_timeline.

Inputs: videoId (required), timestamp (required).

get_video_outlineA
Read-only

Auto-detect topic structure and create an outline of a video. Identifies main sections, topic transitions, and creates a hierarchical structure with timestamps. Great for long videos and lectures.

Inputs: videoId (required), language.

get_video_summaryA
Read-only

Generate a structured summary of a video with key points, timestamps, and main takeaways. COMBINE WITH: get_video_outline for structure, answer_from_video for specific questions, video_timeline for visual overview. For complete analysis, use deep_analyze_video instead.

Inputs: videoId (required), language, style.

health_checkA
Read-only

Check TubePilot server health and status. Returns API key status, cache stats, and available features. Use this for debugging connectivity issues.

Inputs: no named parameters.

list_caption_languagesA
Read-only

List all available caption/subtitle languages for a video. USE THIS FIRST before get_transcript to check language availability. Shows auto-generated vs manual captions (manual = better quality). Essential for non-English videos.

Inputs: videoId (required).

merge_transcriptsA
Read-only

MULTI-VIDEO TOOL: Merge transcripts from 2-10 videos into one document. Perfect for course playlists, tutorial series, or comparing coverage of same topic. COMBINE WITH: compare_moments to see same timestamp across videos, get_playlist (API) to get video IDs from a playlist first.

Inputs: videoIds (required), language, includeSeparators.

search_in_transcriptA
Read-only

Search for specific words or phrases within a video transcript. Returns matching segments with timestamps.

Inputs: videoId (required), query (required), language.

video_timelineA
Read-only

VISUAL OVERVIEW TOOL: Generate a timeline with frames + transcript at regular intervals. Perfect for long videos, lectures, documentaries. Returns multiple images with text context. Use instead of calling get_video_frames + get_transcript separately.

Inputs: videoId (required), intervals.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 27 tools

    Disambiguation5/5

    The tools have clearly distinct purposes, with detailed descriptions that guide when to use each. Combination tools like deep_analyze_video and video_timeline reduce overlap, and specialized tools like analyze_short and extract_code_snippets target specific use cases. No two tools appear to do the same thing.

    Naming Consistency5/5

    All tools use snake_case and follow a verb_noun pattern (e.g., get_video_info, extract_code_snippets, detect_music). Even 'health_check' and 'video_timeline' are consistent with the pattern. No mixing of conventions or chaotic naming.

    Tool Count4/5

    At 27 tools, the count is on the higher side but the broad scope of YouTube video analysis justifies it. The tools are well-organized, and combination tools help reduce the need for many separate calls. Slightly over but still reasonable.

    Completeness5/5

    The toolset covers nearly all aspects of video analysis: metadata, transcripts, frames, moments, summaries, outlines, code/tech extraction, links, tutorials, shorts, and health checks. Missing features like playlist management are minor and the core analysis surface is very complete.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers