Skill detail
youtube-summarizer
Fetches YouTube transcripts, generates structured summaries, and delivers full transcripts to messaging platforms.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
---
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: 2.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.
## Mode
Detect from context or ask: *"Quick TL;DR, full summary, or full summary with content angles?"*
| Mode | What you get | Best for |
|------|-------------|----------|
| `quick` | 3-bullet TL;DR + single key takeaway | Fast consumption, sharing a clip |
| `standard` | Full structured summary: thesis, insights, takeaway | Learning, note-taking, research |
| `deep` | Full summary + chapter breakdown + content repurposing opportunities | Turning a video into a content asset |
**Default: `standard`** — use `quick` if they just want the gist. Use `deep` if they want to extract the video into usable content.
---
## Why This vs ChatGPT?
**Problem with ChatGPT:** It can't access YouTube transcripts directly. You have to manually copy/paste captions or use a third-party tool first, then feed the text to ChatGPT. Multi-step, clunky, loses video metadata.
**This skill provides:**
1. **One-step transcript extraction** - Drop a YouTube URL, get the full transcript automatically
2. **Structured summarization** - Consistent format (thesis → insights → takeaway) every time, not random bullet points
3. **Video metadata included** - Title, channel, views, publish date embedded in summary
4. **Full transcript delivery** - Saves timestamped transcript to file and sends to Telegram/chat platforms
5. **Works from VPS/cloud** - Uses Android client emulation to bypass YouTube's cloud IP blocking (where yt-dlp fails)
6. **Multi-language support** - Auto-fetches in requested language with English fallback
**You can replicate this** by manually enabling captions, copying text, pasting to ChatGPT, reformatting the output, saving to a file, and uploading. Takes 5-10 minutes. This skill does it in 15-20 seconds.
## 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
- You need to analyze video content for research or content creation
## Dependencies
**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
```
## Workflow
### 1. Detect YouTube URL
Extract video ID from these patterns:
- `https://www.youtube.com/watch?v=VIDEO_ID`
- `https://youtu.be/VIDEO_ID`
- `https://www.youtube.com/shorts/VIDEO_ID`
- Direct video ID: `VIDEO_ID` (11 characters)
### 2. Fetch Transcript
Run this command to get the transcript:
```bash
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 title
- `result.metadata.author` - Channel name
- `result.metadata.viewCount` - Formatted view count
- `result.metadata.publishDate` - Publication date
- `result.actualLang` - Language used
- `result.lines` - Array of transcript segments
Full text: `result.lines.map(l => l.text).join(' ')`
### 4. Generate Summary
Create a structured summary Read the full source on GitHub (opens external page)