Youtube
Search YouTube videos, get channel info, fetch video details and transcripts using YouTube Data API v3 via MCP server or yt-dlp fallback.
Search YouTube videos, get channel info, fetch video details and transcripts using YouTube Data API v3 via MCP server or yt-dlp fallback.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Search YouTube, get video/channel info, and fetch transcripts using YouTube Data API v3.
MCP Server (primary method):
npm install -g zubeid-youtube-mcp-server
Fallback tool (if MCP fails):
# yt-dlp for transcript extraction pip install yt-dlp
Option A: Clawdbot config (recommended) Add to
~/.clawdbot/clawdbot.json:
{ "skills": { "entries": { "youtube": { "apiKey": "AIzaSy..." } } } }
Option B: Environment variable
export YOUTUBE_API_KEY="AIzaSy..."
The skill will use
mcporter to call the YouTube MCP server:
# Build from source (if installed package has issues) cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run build
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ search_videos query="ClawdBot AI" maxResults:5
Returns video IDs, titles, descriptions, channel info.
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ channels_info channelId="UCSHZKyawb77ixDdsGog4iWA"
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:5
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ videos_details videoId="Z-FRe5AKmCU"
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ transcripts_getTranscript videoId="Z-FRe5AKmCU"
If MCP transcript fails (empty or unavailable), use
yt-dlp:
yt-dlp --skip-download --write-auto-sub --sub-lang en --sub-format vtt \ --output "/tmp/%(id)s.%(ext)s" \ "https://youtube.com/watch?v=Z-FRe5AKmCU"
Then read the
.vtt file from /tmp/.
Or get transcript directly:
yt-dlp --skip-download --write-auto-sub --sub-lang en --print "%(subtitles)s" \ "https://youtube.com/watch?v=VIDEO_ID" 2>&1 | grep -A1000 "WEBVTT"
Example: Lex Fridman Podcast
# Get channel ID (Lex Fridman: UCSHZKyawb77ixDdsGog4iWA) mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:1
Returns most recent video with title, ID, publish date.
# Step 1: Get video ID from search or channel listing # Step 2: Try MCP transcript first mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ transcripts_getTranscript videoId="VIDEO_ID"Step 3: If empty, fallback to yt-dlp
yt-dlp --skip-download --write-auto-sub --sub-lang en
--output "/tmp/%(id)s.%(ext)s"
"https://youtube.com/watch?v=VIDEO_ID"cat /tmp/VIDEO_ID.en.vtt
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ search_videos query="Laravel AI productivity 2025" maxResults:10
Filter results for relevant channels or dates.
Keep frequently used channels here for quick access:
UCSHZKyawb77ixDdsGog4iWATo find a channel ID:
"channelId": or "externalId"Or use search and extract from results.
YouTube Data API v3 has daily quotas:
Tip: Use transcript lookups liberally (no quota cost), be conservative with search.
Symptom:
Connection closed or YOUTUBE_API_KEY environment variable is required
Fix: Build from source:
cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run buildTest
YOUTUBE_API_KEY="your_key" node dist/cli.js
Symptom: Transcript returned but content is empty
Cause: Video may not have captions, or MCP can't access them
Fix: Use yt-dlp fallback (see above)
pip install --user yt-dlp # or pipx install yt-dlp
The YouTube API key is safe to use with this MCP server:
googleapis.comHowever:
# 1. Find latest Lex Fridman episode mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:12. Get video details
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
videos_details videoId="Z-FRe5AKmCU"3. Get transcript
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
transcripts_getTranscript videoId="Z-FRe5AKmCU"If transcript empty, use yt-dlp
yt-dlp --skip-download --write-auto-sub --sub-lang en
--output "/tmp/%(id)s.%(ext)s"
"https://youtube.com/watch?v=Z-FRe5AKmCU"4. Analyze transcript for interesting topics
(read /tmp/Z-FRe5AKmCU.en.vtt and extract key themes)
# Search for recent videos mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \ search_videos query="ClawdBot security concerns" maxResults:10Pick relevant ones, get transcripts
Analyze sentiment and technical claims
/tmp/youtube-mcp-server/dist/cli.jsYOUTUBE_API_KEY="key" node ...--extract-audio --audio-format mp3)No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.