summarizer
by @kirkraman
Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and prov...
clawhub install jx-summarizerπ About This Skill
name: youtube-summarizer description: Automatically 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. version: 1.0.0 author: abe238 tags: [youtube, transcription, summarization, video, telegram] requires.env: [SKILLBOSS_API_KEY]
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:
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_IDVIDEO_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 segmentsFull 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, osSKILLBOSS_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.\n\nTitle: {title}\nChannel: {author}\n\nTranscript:\n{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:
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:
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:
lang: 'en' fallback if requested language unavailableIf MCP server not installed:
If video ID extraction fails:
Examples
See examples/ directory for sample outputs.
Quality Guidelines
Notes
/v1/pilotβ‘ When to Use
π‘ Examples
See examples/ directory for sample outputs.
π Tips & Best Practices
/v1/pilot