Awesome-omni-skills youtube-summarizer
youtube-summarizer workflow skill. Use this skill when the user needs Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks and the operator should preserve the upstream workflow, copied support files, and provenance before merging or handing off.
git clone https://github.com/diegosouzapw/awesome-omni-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/youtube-summarizer" ~/.claude/skills/diegosouzapw-awesome-omni-skills-youtube-summarizer && rm -rf "$T"
skills/youtube-summarizer/SKILL.mdyoutube-summarizer
Overview
This public intake copy packages
plugins/antigravity-awesome-skills-claude/skills/youtube-summarizer from https://github.com/sickn33/antigravity-awesome-skills into the native Omni Skills editorial shape without hiding its origin.
Use it when the operator needs the upstream workflow, support files, and repository context to stay intact while the public validator and private enhancer continue their normal downstream flow.
This intake keeps the copied upstream files intact and uses
metadata.json plus ORIGIN.md as the provenance anchor for review.
youtube-summarizer
Imported source sections that did not map cleanly to the public headings are still preserved below or in the support files. Notable imported sections: Purpose, 📝 Detailed Summary, 📚 Concepts and Terminology, 📌 Conclusion, 📊 Executive Summary, Limitations.
When to Use This Skill
Use this section as the trigger filter. It should make the activation boundary explicit before the operator loads files, runs commands, or opens a pull request.
- 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
Operating Table
| Situation | Start here | Why it matters |
|---|---|---|
| First-time use | | Confirms repository, branch, commit, and imported path before touching the copied workflow |
| Provenance review | | Gives reviewers a plain-language audit trail for the imported source |
| Workflow execution | | Starts with the smallest copied file that materially changes execution |
| Supporting context | | Adds the next most relevant copied source file without loading the entire package |
| Handoff decision | | Helps the operator switch to a stronger native skill when the task drifts |
Workflow
This workflow is intentionally editorial and operational at the same time. It keeps the imported source useful to the operator while still satisfying the public intake standards that feed the downstream enhancer flow.
- Yes - Install with pip (pip install youtube-transcript-api)
- No - I'll install it manually
- 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
- https://www.youtube.com/watch?v=VIDEO_ID
Imported Workflow Notes
Imported: 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')"
Imported: 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_IDhttps://youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://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:
| Error | Message | Action |
|---|---|---|
| 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") # Save to temporary file for processing with open(f"/tmp/transcript_{video_id}.txt", "w") as f: f.write(full_text) 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)
- Store in temporary file for analysis
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:
- Load the full transcript text
- Apply the comprehensive summarization prompt
- Use AI model (Claude/GPT) to generate structured summary
- 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:
# Use the transcript file as input to the AI prompt TRANSCRIPT_FILE="/tmp/transcript_${VIDEO_ID}.txt" # The AI agent will: # 1. Read the transcript # 2. Apply the STAR + R-I-S-E summarization framework # 3. Generate comprehensive Markdown output # 4. Structure with headers, lists, and highlights Read "$TRANSCRIPT_FILE" # Read transcript into context
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] #### Imported: 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. ## Examples ### Example 1: Ask for the upstream workflow directly ```text Use @youtube-summarizer to handle <task>. Start from the copied upstream workflow, load only the files that change the outcome, and keep provenance visible in the answer.
Explanation: This is the safest starting point when the operator needs the imported workflow, but not the entire repository.
Example 2: Ask for a provenance-grounded review
Review @youtube-summarizer against metadata.json and ORIGIN.md, then explain which copied upstream files you would load first and why.
Explanation: Use this before review or troubleshooting when you need a precise, auditable explanation of origin and file selection.
Example 3: Narrow the copied support files before execution
Use @youtube-summarizer for <task>. Load only the copied references, examples, or scripts that change the outcome, and name the files explicitly before proceeding.
Explanation: This keeps the skill aligned with progressive disclosure instead of loading the whole copied package by default.
Example 4: Build a reviewer packet
Review @youtube-summarizer using the copied upstream files plus provenance, then summarize any gaps before merge.
Explanation: This is useful when the PR is waiting for human review and you want a repeatable audit packet.
Best Practices
Treat the generated public skill as a reviewable packaging layer around the upstream repository. The goal is to keep provenance explicit and load only the copied source material that materially improves execution.
- Keep the imported skill grounded in the upstream repository; do not invent steps that the source material cannot support.
- Prefer the smallest useful set of support files so the workflow stays auditable and fast to review.
- Keep provenance, source commit, and imported file paths visible in notes and PR descriptions.
- Point directly at the copied upstream files that justify the workflow instead of relying on generic review boilerplate.
- Treat generated examples as scaffolding; adapt them to the concrete task before execution.
- Route to a stronger native skill when architecture, debugging, design, or security concerns become dominant.
Troubleshooting
Problem: The operator skipped the imported context and answered too generically
Symptoms: The result ignores the upstream workflow in
plugins/antigravity-awesome-skills-claude/skills/youtube-summarizer, fails to mention provenance, or does not use any copied source files at all.
Solution: Re-open metadata.json, ORIGIN.md, and the most relevant copied upstream files. Load only the files that materially change the answer, then restate the provenance before continuing.
Problem: The imported workflow feels incomplete during review
Symptoms: Reviewers can see the generated
SKILL.md, but they cannot quickly tell which references, examples, or scripts matter for the current task.
Solution: Point at the exact copied references, examples, scripts, or assets that justify the path you took. If the gap is still real, record it in the PR instead of hiding it.
Problem: The task drifted into a different specialization
Symptoms: The imported skill starts in the right place, but the work turns into debugging, architecture, design, security, or release orchestration that a native skill handles better. Solution: Use the related skills section to hand off deliberately. Keep the imported provenance visible so the next skill inherits the right context instead of starting blind.
Related Skills
- Use when the work is better handled by that native specialization after this imported skill establishes context.@00-andruia-consultant-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@10-andruia-skill-smith-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@20-andruia-niche-intelligence-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@3d-web-experience-v2
Additional Resources
Use this support matrix and the linked files below as the operator packet for this imported skill. They should reflect real copied source material, not generic scaffolding.
| Resource family | What it gives the reviewer | Example path |
|---|---|---|
| copied reference notes, guides, or background material from upstream | |
| worked examples or reusable prompts copied from upstream | |
| upstream helper scripts that change execution or validation | |
| routing or delegation notes that are genuinely part of the imported package | |
| supporting assets or schemas copied from the source package | |
- extract-transcript.py
- install-dependencies.sh
- CHANGELOG.md
- README.md
- extract-transcript.py
- install-dependencies.sh
Imported Reference Notes
Imported: 📝 Detailed Summary
[Topic 1]
[Comprehensive explanation with examples, data, quotes...]
[Subtopic 1.1]
[Detailed breakdown...]
[Topic 2]
[Continued detailed analysis...]
Imported: 📚 Concepts and Terminology
- [Term 1]: [Definition and context]
- [Term 2]: [Definition and context]
Imported: 📌 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.
Imported: 📊 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
Imported: 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.