PluginBench
Skill
Review
Audit score 70

youtube-summarizer

sickn33/agentic-awesome-skills

Extract and summarize YouTube video transcripts with detailed analysis frameworks.

What is youtube-summarizer?

This skill extracts transcripts from YouTube videos and generates comprehensive summaries using structured analysis frameworks like STAR and R-I-S-E. Use it when you need thorough documentation of educational videos, lectures, or tutorials without rewatching.

  • Validates YouTube URLs and extracts video IDs from multiple URL formats
  • Checks video availability and transcript accessibility before processing
  • Retrieves transcripts using the youtube-transcript-api Python library
  • Generates detailed, verbose summaries prioritizing completeness over brevity
  • Supports multiple transcript languages with fallback to English
  • Displays progress tracking with visual gauges throughout the workflow

How to install youtube-summarizer

npx skills add https://github.com/sickn33/agentic-awesome-skills --skill youtube-summarizer
Prerequisites
  • Python 3 installed and available in PATH
  • youtube-transcript-api Python library (can be installed via pip during setup)
Claude Code
Cursor
Windsurf
Cline

How to use youtube-summarizer

  1. 1.Provide a YouTube video URL in one of the supported formats (youtube.com/watch?v=..., youtu.be/..., or m.youtube.com)
  2. 2.The skill validates the URL and extracts the video ID
  3. 3.The skill checks if the video is accessible and has available transcripts
  4. 4.The transcript is extracted in the preferred language (with English fallback)
  5. 5.A detailed summary is generated using the STAR + R-I-S-E analysis framework
  6. 6.The formatted output is returned with comprehensive documentation of all key points

Use cases

Good for
  • Summarizing educational lectures or online courses for study reference
  • Extracting key points and arguments from tutorial or how-to videos
  • Creating documentation from informational or explanatory video content
  • Analyzing insights from conference talks or expert interviews
  • Building reference materials from long-form video content without rewatching
Who it's for
  • Students and educators needing video content documentation
  • Content analysts and researchers extracting information from videos
  • Knowledge workers creating reference materials from online learning
  • Anyone needing comprehensive transcripts and summaries of YouTube content

youtube-summarizer FAQ

What YouTube URL formats are supported?

The skill supports https://www.youtube.com/watch?v=VIDEO_ID, https://youtube.com/watch?v=VIDEO_ID, https://youtu.be/VIDEO_ID, and https://m.youtube.com/watch?v=VIDEO_ID formats.

What happens if a video doesn't have transcripts?

If transcripts are disabled or not available for a video, the skill will report an error and cannot proceed with summarization.

Can it handle videos in languages other than English?

Yes, the skill attempts to retrieve transcripts in preferred languages and falls back to English if the preferred language is unavailable.

What is the STAR + R-I-S-E framework?

These are intelligent analysis frameworks used to structure and organize the detailed summary, capturing insights, arguments, and key points comprehensively.

Does this skill work with private or restricted videos?

No, the skill requires publicly accessible videos. Private or restricted videos cannot be processed.

Full instructions (SKILL.md)

Source of truth, from sickn33/agentic-awesome-skills.


name: youtube-summarizer description: "Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks" category: content risk: safe source: community tags: "[video, summarization, transcription, youtube, content-analysis]" date_added: "2026-02-27"

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

# youtube-transcript-api 1.0 replaced the get_transcript/list_transcripts class
# methods with an instance API. Support both versions.
_legacy = hasattr(YouTubeTranscriptApi, 'get_transcript')

video_id = sys.argv[1]

try:
    # Get list of available transcripts
    if _legacy:
        transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
    else:
        transcript_list = YouTubeTranscriptApi().list(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

# youtube-transcript-api 1.0 replaced the get_transcript/list_transcripts class
# methods with an instance API. Support both versions.
_legacy = hasattr(YouTubeTranscriptApi, 'get_transcript')

video_id = "VIDEO_ID"

try:
    # Try to get transcript in user's preferred language first
    # Fall back to English if not available
    languages = ['pt', 'en']  # Prefer Portuguese, fallback to English
    if _legacy:
        transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=languages)
    else:
        transcript = YouTubeTranscriptApi().fetch(video_id, languages=languages).to_raw_data()
    
    # Combine transcript segments into full text
    full_text = " ".join([entry['text'] for entry in transcript])
    
    # Get video metadata
    if _legacy:
        transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
    else:
        transcript_list = YouTubeTranscriptApi().list(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 YouTube URL format

Expected format examples:
- https://www.youtube.com/watch?v=VIDEO_ID
- https://youtu.be/VIDEO_ID

Please provide a valid YouTube video URL.

📊 Executive Summary

This video provides a comprehensive introduction to the fundamental concepts of Artificial Intelligence (AI), designed for beginners and professionals who want to understand the technical foundations and practical applications of modern AI. The instructor covers everything from basic definitions to machine learning algorithms, using practical examples and visualizations to facilitate understanding.

[... continued detailed summary ...]


**Save Options:**

What would you like to save? → Summary + raw transcript

✅ File saved: resumo-exemplo123-2026-02-01.md (includes raw transcript) [████████████████████] 100% - ✓ Processing complete!



Welcome to this comprehensive tutorial on machine learning fundamentals. In today's video, we'll explore the core concepts that power modern AI systems...

Version: 1.2.0 Last Updated: 2026-02-02 Maintained By: Eric Andrade

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.