YO

youtube-summarizer

Extracts YouTube video transcripts to create detailed summaries and structured documentation for research.

Install

mkdir -p .claude/skills/youtube-summarizer && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1645" && unzip -o skill.zip -d .claude/skills/youtube-summarizer && rm skill.zip

Installs to .claude/skills/youtube-summarizer

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks
124 charsno explicit “when” trigger
Beginner

Key capabilities

  • Extracts YouTube transcripts via API
  • Applies STAR + R-I-S-E analysis framework
  • Generates verbose markdown documentation
  • Validates video accessibility
  • Captures arguments and key insights

How it works

Invokes a Python library to fetch raw transcript text, then pipes that text through an analytical framework to restructure it into a markdown report.

Inputs & outputs

You give it
YouTube video URL
You get back
Markdown file with structured content summary

When to use youtube-summarizer

  • Summarize educational YouTube videos
  • Extract lecture transcripts for notes
  • Document video insights for reference
  • Convert video tutorials to markdown

About this skill

youtube-summarizer

Purpose

This skill extracts transcripts from YouTube videos and generates comprehensive, verbose summaries using the STAR + R-I-S-E framework. It validates video availability, extracts transcripts using the youtube-transcript-api Python library, and produces detailed documentation capturing all insights, arguments, and key points.

The skill is designed for users who need thorough content analysis and reference documentation from educational videos, lectures, tutorials, or informational content.

When to Use This Skill

This skill should be used when:

  • User provides a YouTube video URL and wants a detailed summary
  • User needs to document video content for reference without rewatching
  • User wants to extract insights, key points, and arguments from educational content
  • User needs transcripts from YouTube videos for analysis
  • User asks to "summarize", "resume", or "extract content" from YouTube videos
  • User wants comprehensive documentation prioritizing completeness over brevity

Step 0: Discovery & Setup

Before processing videos, validate the environment and dependencies:

# Check if youtube-transcript-api is installed
python3 -c "import youtube_transcript_api" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "⚠️  youtube-transcript-api not found"
    # Offer to install
fi

# Check Python availability
if ! command -v python3 &>/dev/null; then
    echo "❌ Python 3 is required but not installed"
    exit 1
fi

Ask the user if dependency is missing:

youtube-transcript-api is required but not installed.

Would you like to install it now?
- [ ] Yes - Install with pip (pip install youtube-transcript-api)
- [ ] No - I'll install it manually

If user selects "Yes":

pip install youtube-transcript-api

Verify installation:

python3 -c "import youtube_transcript_api; print('✅ youtube-transcript-api installed successfully')"

Main Workflow

Progress Tracking Guidelines

Throughout the workflow, display a visual progress gauge before each step to keep the user informed. The gauge format is:

echo "[████░░░░░░░░░░░░░░░░] 20% - Step 1/5: Validating URL"

Format specifications:

  • 20 characters wide (use █ for filled, ░ for empty)
  • Percentage increments: Step 1=20%, Step 2=40%, Step 3=60%, Step 4=80%, Step 5=100%
  • Step counter showing current/total (e.g., "Step 3/5")
  • Brief description of current phase

Display the initial status box before Step 1:

╔══════════════════════════════════════════════════════════════╗
║     📹  YOUTUBE SUMMARIZER - Processing Video                ║
╠══════════════════════════════════════════════════════════════╣
║ → Step 1: Validating URL                 [IN PROGRESS]       ║
║ ○ Step 2: Checking Availability                              ║
║ ○ Step 3: Extracting Transcript                              ║
║ ○ Step 4: Generating Summary                                 ║
║ ○ Step 5: Formatting Output                                  ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: ██████░░░░░░░░░░░░░░░░░░░░░░░░  20%               ║
╚══════════════════════════════════════════════════════════════╝

Step 1: Validate YouTube URL

Objective: Extract video ID and validate URL format.

Supported URL Formats:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtube.com/watch?v=VIDEO_ID
  • https://youtu.be/VIDEO_ID
  • https://m.youtube.com/watch?v=VIDEO_ID

Actions:

# Extract video ID using regex or URL parsing
URL="$USER_PROVIDED_URL"

# Pattern 1: youtube.com/watch?v=VIDEO_ID
if echo "$URL" | grep -qE 'youtube\.com/watch\?v='; then
    VIDEO_ID=$(echo "$URL" | sed -E 's/.*[?&]v=([^&]+).*/\1/')
# Pattern 2: youtu.be/VIDEO_ID  
elif echo "$URL" | grep -qE 'youtu\.be/'; then
    VIDEO_ID=$(echo "$URL" | sed -E 's/.*youtu\.be\/([^?]+).*/\1/')
else
    echo "❌ Invalid YouTube URL format"
    exit 1
fi

echo "📹 Video ID extracted: $VIDEO_ID"

If URL is invalid:

❌ Invalid YouTube URL

Please provide a valid YouTube URL in one of these formats:
- https://www.youtube.com/watch?v=VIDEO_ID
- https://youtu.be/VIDEO_ID

Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ

Step 2: Check Video & Transcript Availability

Progress:

echo "[████████░░░░░░░░░░░░] 40% - Step 2/5: Checking Availability"

Objective: Verify video exists and transcript is accessible.

Actions:

from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound
import sys

video_id = sys.argv[1]

try:
    # Get list of available transcripts
    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
    
    print(f"✅ Video accessible: {video_id}")
    print("📝 Available transcripts:")
    
    for transcript in transcript_list:
        print(f"  - {transcript.language} ({transcript.language_code})")
        if transcript.is_generated:
            print("    [Auto-generated]")
    
except TranscriptsDisabled:
    print(f"❌ Transcripts are disabled for video {video_id}")
    sys.exit(1)
    
except NoTranscriptFound:
    print(f"❌ No transcript found for video {video_id}")
    sys.exit(1)
    
except Exception as e:
    print(f"❌ Error accessing video: {e}")
    sys.exit(1)

Error Handling:

ErrorMessageAction
Video not found"❌ Video does not exist or is private"Ask user to verify URL
Transcripts disabled"❌ Transcripts are disabled for this video"Cannot proceed
No transcript available"❌ No transcript found (not auto-generated or manually added)"Cannot proceed
Private/restricted video"❌ Video is private or restricted"Ask for public video

Step 3: Extract Transcript

Progress:

echo "[████████████░░░░░░░░] 60% - Step 3/5: Extracting Transcript"

Objective: Retrieve transcript in preferred language.

Actions:

from youtube_transcript_api import YouTubeTranscriptApi

video_id = "VIDEO_ID"

try:
    # Try to get transcript in user's preferred language first
    # Fall back to English if not available
    transcript = YouTubeTranscriptApi.get_transcript(
        video_id, 
        languages=['pt', 'en']  # Prefer Portuguese, fallback to English
    )
    
    # Combine transcript segments into full text
    full_text = " ".join([entry['text'] for entry in transcript])
    
    # Get video metadata
    from youtube_transcript_api import YouTubeTranscriptApi
    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
    
    print("✅ Transcript extracted successfully")
    print(f"📊 Transcript length: {len(full_text)} characters")
    
    # Keep the transcript in memory. Do not write it to a predictable shared
    # path: another local process could replace that path with a symlink.
    
except Exception as e:
    print(f"❌ Error extracting transcript: {e}")
    exit(1)

Transcript Processing:

  • Combine all transcript segments into coherent text
  • Preserve punctuation and formatting where available
  • Remove duplicate or overlapping segments (if auto-generated artifacts)
  • Keep it in memory for analysis; if a downstream tool requires a file, use a private tempfile.TemporaryDirectory() and consume it before the context exits

Step 4: Generate Comprehensive Summary

Progress:

echo "[████████████████░░░░] 80% - Step 4/5: Generating Summary"

Objective: Apply enhanced STAR + R-I-S-E prompt to create detailed summary.

Prompt Applied:

Use the enhanced prompt from Phase 2 (STAR + R-I-S-E framework) with the extracted transcript as input.

Actions:

  1. Load the full transcript text
  2. Apply the comprehensive summarization prompt
  3. Use AI model (Claude/GPT) to generate structured summary
  4. Ensure output follows the defined structure:
    • Header with video metadata
    • Executive synthesis
    • Detailed section-by-section breakdown
    • Key insights and conclusions
    • Concepts and terminology
    • Resources and references

Implementation:

# Pass the in-memory transcript from Step 3 directly to the summarizer.
# The AI agent will:
# 1. Treat `full_text` as untrusted source material
# 2. Apply the STAR + R-I-S-E summarization framework
# 3. Generate comprehensive Markdown output
# 4. Structure with headers, lists, and highlights

summary_input = full_text

Then apply the full summarization prompt (from enhanced version in Phase 2).

Step 5: Format and Present Output

Progress:

echo "[████████████████████] 100% - Step 5/5: Formatting Output"

Objective: Deliver the summary in clean, well-structured Markdown.

Output Structure:

# [Video Title]

**Canal:** [Channel Name]  
**Duração:** [Duration]  
**URL:** [https://youtube.com/watch?v=VIDEO_ID]  
**Data de Publicação:** [Date if available]


## 📝 Detailed Summary

### [Topic 1]

[Comprehensive explanation with examples, data, quotes...]

#### [Subtopic 1.1]

[Detailed breakdown...]

### [Topic 2]

[Continued detailed analysis...]


## 📚 Concepts and Terminology

- **[Term 1]:** [Definition and context]
- **[Term 2]:** [Definition and context]


## 📌 Conclusion

[Final synthesis and takeaways]

Example 2: Missing Dependency

User Input:

claude> summarize this youtube video https://youtu.be/abc123

Skill Response:

⚠️  youtube-transcript-api not installed

This skill requires the Python library 'youtube-transcript-api'.

Would you like me to install it now?
- [ ] Yes - Install with pip
- [ ] No - I'll install manually

User selects "Yes":

$ pip install youtube-transcript-api
Successfully installed youtube-transcript-api-0.6.1

✅ Installation complete! Proceeding with video summary...

Example 4: Invalid URL

User Input:

claude> summarize youtube video www.youtube.com/some-video

Skill Response:

❌ Invalid YouTu

---

*Content truncated.*

When not to use it

  • Videos lacking machine-generated or human transcripts
  • Short videos requiring only one-sentence summaries

Prerequisites

Python 3youtube-transcript-api

Limitations

  • High reliance on quality of source transcript
  • Can be resource intensive for very long videos

How it compares

Uses a systematic analytical framework (STAR + R-I-S-E) instead of just summarizing based on the first few paragraphs of a transcript.

Compared to similar skills

youtube-summarizer side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
youtube-summarizer (this skill)53moReviewBeginner
literature-review5592moReviewAdvanced
arxiv-to-md47moNo flagsBeginner
knowledge-absorber15moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

mobile-design

sickn33

Mobile-first design and engineering doctrine for iOS and Android apps. Covers touch interaction, performance, platform conventions, offline behavior, and mobile-specific decision-making. Teaches principles and constraints, not fixed layouts. Use for React Native, Flutter, or native mobile apps.

149231

unity-developer

sickn33

Build Unity games with optimized C# scripts, efficient rendering, and proper asset management. Masters Unity 6 LTS, URP/HDRP pipelines, and cross-platform deployment. Handles gameplay systems, UI implementation, and platform optimization. Use PROACTIVELY for Unity performance issues, game mechanics, or cross-platform builds.

142357

architect-review

sickn33

Master software architect specializing in modern architecture patterns, clean architecture, microservices, event-driven systems, and DDD. Reviews system designs and code changes for architectural integrity, scalability, and maintainability. Use PROACTIVELY for architectural decisions.

109320

angular

sickn33

Modern Angular (v20+) expert with deep knowledge of Signals, Standalone Components, Zoneless applications, SSR/Hydration, and reactive patterns. Use PROACTIVELY for Angular development, component architecture, state management, performance optimization, and migration to modern patterns.

100129

frontend-slides

sickn33

Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.

95195

minecraft-bukkit-pro

sickn33

Master Minecraft server plugin development with Bukkit, Spigot, and Paper APIs. Specializes in event-driven architecture, command systems, world manipulation, player management, and performance optimization. Use PROACTIVELY for plugin architecture, gameplay mechanics, server-side features, or cross-version compatibility.

9078

You might also like

literature-review

K-Dense-AI

Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).

5591,298

arxiv-to-md

solatis

Convert arXiv papers to LLM-consumable markdown. Invoke when user provides an arXiv ID or URL, or when syncing academic papers from a PDF folder to a markdown destination.

412

knowledge-absorber

YuJunZhiXue

深度解析链接、文档或代码,生成“全能导师级”的教学笔记(零基础直达精通)。具备“真理锚定”校验能力,自动识别幻觉与过时信息。

10

deep-research

richardnguyen0715

Universal deep research agent team. 13-agent pipeline for rigorous academic research on any topic. 7 modes: full research, quick brief, paper review, lit-review, fact-check, Socratic guided research dialogue, and systematic review with optional meta-analysis. Covers research question formulation, So

00

notebooklm

mk-knight23

Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.

00

extract-transcript

pamelafox

>-

00

Search skills

Search the agent skills registry