/install jx-summarizer
YouTube Summarizer Skill
Automatically fetch transcripts from YouTube videos, generate structured summaries, and deliver full transcripts to messaging platforms.
When to Use
Activate this skill when:
- User shares a YouTube URL (youtube.com/watch, youtu.be, youtube.com/shorts)
- User asks to summarize or transcribe a YouTube video
- User requests information about a YouTube video's content
Dependencies
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
Workflow
1. Detect YouTube URL
Extract video ID from these patterns:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_ID- Direct video ID:
VIDEO_ID(11 characters)
2. Fetch Transcript
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.
3. Process the Data
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 segments
Full text: result.lines.map(l => l.text).join(' ')
4. Generate Summary
Call SkillBoss API Hub (/v1/pilot, type chat) to generate a structured summary from the transcript:
import requests, os
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]
def generate_summary(transcript_text: str, title: str, author: str) -> str:
r = requests.post(
"https://api.heybossai.com/v1/pilot",
headers={
"Authorization": f"Bearer {SKILLBOSS_API_KEY}",
"Content-Type": "application/json"
},
json={
"type": "chat",
"inputs": {
"messages": [
{
"role": "system",
"content": "You are a video summarization expert. Generate a structured summary with: Main Thesis (1-2 sentences), Key Insights (3-5 bullets), Notable Points (2-4 bullets), and Takeaway (1 actionable sentence)."
},
{
"role": "user",
"content": f"Summarize this YouTube video transcript.\
\
Title: {title}\
Channel: {author}\
\
Transcript:\
{transcript_text}"
}
]
},
"prefer": "balanced"
},
timeout=60,
)
result = r.json()
return result["result"]["choices"][0]["message"]["content"]
Format the output 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:
- Main thesis: 1-2 sentences maximum
- Key insights: 3-5 bullets, each 1-2 sentences
- Notable points: 2-4 supporting details
- Takeaway: Actionable conclusion
5. Save Full Transcript
Save the complete transcript to a timestamped file:
/root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt
Include in the file:
- Video metadata header
- Full transcript text
- URL reference
6. Platform-Specific Delivery
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).
7. Reply with Summary
Send the structured summary as your response to the user.
Error Handling
If transcript fetch fails:
- Check if video has captions enabled
- Try with
lang: 'en'fallback if requested language unavailable - Inform user that transcript is not available and suggest alternatives:
- Manual YouTube transcript feature
- Video may not have captions
- Try a different video
If MCP server not installed:
- Provide installation instructions
- Offer to install it automatically if in appropriate context
If video ID extraction fails:
- Ask user to provide the full YouTube URL or video ID
Examples
See examples/ directory for sample outputs.
Quality Guidelines
- Be concise: Summary should be scannable in 30 seconds
- Be accurate: Don't add information not in the transcript
- Be structured: Use consistent formatting for easy reading
- Be contextual: Adjust detail level based on video length
- Short videos (\x3C5 min): Brief summary
- Long videos (>30 min): More detailed breakdown
Notes
- MCP server uses Android client emulation to bypass YouTube's cloud IP blocking
- Works reliably from VPS/cloud environments where yt-dlp often fails
- Supports multiple languages with automatic fallback to English
- Transcript quality depends on YouTube's auto-generated captions or manual captions
- Summary generation powered by SkillBoss API Hub — auto-routes to the best available LLM via
/v1/pilot
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install jx-summarizer - 安装完成后,直接呼叫该 Skill 的名称或使用
/jx-summarizer触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
summarizer 是什么?
Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and prov... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 117 次。
如何安装 summarizer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install jx-summarizer」即可一键安装,无需额外配置。
summarizer 是免费的吗?
是的,summarizer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
summarizer 支持哪些平台?
summarizer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 summarizer?
由 KirkRaman(@kirkraman)开发并维护,当前版本 v1.0.0。