skills/youtube-summarizer/SKILL.md
Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks
npx skillsauth add ranbot-ai/awesome-skills youtube-summarizerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
This skill should be used when:
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')"
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:
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% ║
╚══════════════════════════════════════════════════════════════╝
Objective: Extract video ID and validate URL format.
Supported URL Formats:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://m.youtube.com/watch?v=VIDEO_IDActions:
# 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
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(" [A
tools
Use when a user asks to mine or update a private, evidence-backed work profile from local Claude Code, Codex, Copilot CLI, or OpenCode sessions.
data-ai
Use when diagnosing Android overheating, idle heat, thermal throttling, charging or radio heat, or abnormal battery drain with read-only ADB evidence and approval gates.
research
Research public competitor ads, analyze creative patterns and landing pages, and produce an evidence-labeled strategic teardown.
tools
Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.