Install
openclaw skills install youtube-summarizerAutomatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.
openclaw skills install youtube-summarizerAutomatically fetch transcripts from YouTube videos, generate structured summaries, and deliver full transcripts to messaging platforms.
Activate this skill when:
Required: MCP YouTube Transcript server must be installed at:
/root/clawd/mcp-server-youtube-transcript
If not present, install it:
cd /root/clawd
git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git
cd mcp-server-youtube-transcript
npm install && npm run build
Extract video ID from these patterns:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_IDVIDEO_ID (11 characters)Run this command to get the transcript:
cd /root/clawd/mcp-server-youtube-transcript && node --input-type=module -e "
import { getSubtitles } from './dist/youtube-fetcher.js';
const result = await getSubtitles({ videoID: 'VIDEO_ID', lang: 'en' });
console.log(JSON.stringify(result, null, 2));
" > /tmp/yt-transcript.json
Replace VIDEO_ID with the extracted ID. Read the output from /tmp/yt-transcript.json.
Parse the JSON to extract:
result.metadata.title - Video titleresult.metadata.author - Channel nameresult.metadata.viewCount - Formatted view countresult.metadata.publishDate - Publication dateresult.actualLang - Language usedresult.lines - Array of transcript segmentsFull text: result.lines.map(l => l.text).join(' ')
Create a structured summary using this template:
📹 **Video:** [title]
👤 **Channel:** [author] | 👁️ **Views:** [views] | 📅 **Published:** [date]
**🎯 Main Thesis:**
[1-2 sentence core argument/message]
**💡 Key Insights:**
- [insight 1]
- [insight 2]
- [insight 3]
- [insight 4]
- [insight 5]
**📝 Notable Points:**
- [additional point 1]
- [additional point 2]
**🔑 Takeaway:**
[Practical application or conclusion]
Aim for:
Save the complete transcript to a timestamped file:
/root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt
Include in the file:
If channel is Telegram:
message --action send --channel telegram --target CHAT_ID \
--filePath /root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt \
--caption "📄 YouTube Transcript: [title]"
If channel is other/webchat: Just reply with the summary (no file attachment).
Send the structured summary as your response to the user.
If transcript fetch fails:
lang: 'en' fallback if requested language unavailableIf MCP server not installed:
If video ID extraction fails:
See examples/ directory for sample outputs.