9.4kā
by abe238
youtube-summarizer ā OpenClaw Skill
youtube-summarizer is an OpenClaw Skills integration for writing workflows. 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.
Skill Snapshot
| 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. OpenClaw Skills integration. |
| owner | abe238 |
| repository | abe238/youtube-summarizer |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @abe238/youtube-summarizer |
| last updated | Feb 7, 2026 |
Maintainer

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]
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
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:
- 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 (<5 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
YouTube Summarizer
Automatically fetch YouTube video transcripts, generate structured summaries, and deliver full transcripts to messaging platforms.
Features
ā
Automatic detection - Recognizes YouTube URLs in messages
ā
Cloud-friendly - Works from VPS/cloud IPs where yt-dlp fails
ā
Structured summaries - Main thesis, key insights, and takeaways
ā
Full transcripts - Downloadable text file with complete video content
ā
Platform-aware - Auto-sends files to Telegram, text-only elsewhere
ā
Multi-language - Supports multiple languages with English fallback
Installation
Prerequisites
- Node.js 18+ installed
- Clawdbot running
Install via ClawdHub
clawdhub install youtube-summarizer
Manual Installation
# 1. Clone the skill
cd /root/clawd/skills
git clone <this-repo-url> youtube-summarizer
# 2. Install MCP YouTube Transcript dependency
cd /root/clawd
git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git
cd mcp-server-youtube-transcript
npm install && npm run build
Usage
Simply share a YouTube URL in chat:
You: https://youtu.be/dQw4w9WgXcQ
Agent: š¹ **Video:** Never Gonna Give You Up
š¤ **Channel:** Rick Astley | šļø **Views:** 1.4B | š
**Published:** 2009-10-25
**šÆ Main Thesis:**
A declaration of unwavering commitment and loyalty in a relationship...
[structured summary follows]
š Full transcript attached (Telegram) or saved to transcripts/
How It Works
- Detects YouTube URLs automatically
- Fetches transcript using MCP server (bypasses cloud IP blocks)
- Generates structured summary with metadata
- Saves full transcript to
transcripts/YYYY-MM-DD_VIDEO_ID.txt - Sends file to Telegram (if in Telegram context)
- Replies with formatted summary
Supported URL Formats
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_ID- Direct video ID:
VIDEO_ID
Output Format
Summary Structure
š¹ **Video:** [Title]
š¤ **Channel:** [Author] | šļø **Views:** [Count] | š
**Published:** [Date]
**šÆ Main Thesis:**
Core message in 1-2 sentences
**š” Key Insights:**
- Insight 1
- Insight 2
- Insight 3
**š Notable Points:**
- Supporting detail 1
- Supporting detail 2
**š Takeaway:**
Practical conclusion
Transcript File
Saved to /root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt with:
- Video metadata header
- Full transcript text
- URL reference
Configuration
No configuration needed! The skill automatically:
- Detects your messaging platform
- Chooses appropriate delivery method
- Handles language fallback
- Creates transcript directory if needed
Troubleshooting
"Transcript not available"
- Video may not have captions enabled
- Try a different video
- Use YouTube's manual transcript feature
"MCP server not found"
Install the dependency:
cd /root/clawd
git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git
cd mcp-server-youtube-transcript
npm install && npm run build
"Language not available"
The skill automatically falls back to English if requested language isn't available.
Why This Skill?
Problem
- yt-dlp blocked on cloud/VPS IPs
- YouTube aggressive with bot detection
- Manual transcript extraction tedious
- Need structured summaries, not raw text
Solution
- Uses MCP server with Android client emulation
- Bypasses cloud IP restrictions
- Auto-generates structured summaries
- Platform-aware file delivery
Dependencies
- MCP YouTube Transcript - Fetches transcripts via Android client emulation
- Node.js 18+ - Runtime environment
- Clawdbot - AI agent framework
Credits
- Built by abe238
- Uses mcp-server-youtube-transcript by kimtaeyoon83
- Inspired by the need for reliable YouTube transcription on cloud servers
License
MIT
Contributing
Improvements welcome! Consider:
- Additional summary templates
- Multi-language summary generation
- Timestamp-based chapter extraction
- Video metadata enrichment
Changelog
v1.0.0 (2026-01-26)
- Initial release
- Auto-detect YouTube URLs
- Generate structured summaries
- Save full transcripts
- Telegram file delivery
- Cloud IP bypass via MCP server
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
**Required:** MCP YouTube Transcript server must be installed at: `/root/clawd/mcp-server-youtube-transcript` If not present, install it: ```bash cd /root/clawd git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git cd mcp-server-youtube-transcript npm install && npm run build ```
FAQ
How do I install youtube-summarizer?
Run openclaw add @abe238/youtube-summarizer in your terminal. This installs youtube-summarizer into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/abe238/youtube-summarizer. Review commits and README documentation before installing.
