[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7151DYC8QS8TZBECT1G5WW4":3,"skill-same:01M7151DYC8QS8TZBECT1G5WW4":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":14,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M7151DYC8QS8TZBECT1G5WW4","youtube-summarizer",null,"Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"youtube","summarizer","youtube summarizer","2026","safe","summaries","transcripts","videos","extract transcripts","[video, summarization, transcription, youtube, content-analysis]","content-analysis","frameworks","summarization","transcription","community","extract","Video","analysis","content","generate","2026-11-10 10:12:30",false,"---\nname: youtube-summarizer\ndescription: \"Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks\"\ncategory: content\nrisk: safe\nsource: community\ntags: \"[video, summarization, transcription, youtube, content-analysis]\"\ndate_added: \"2026-02-27\"\n---\n\n# youtube-summarizer\n\n## Purpose\n\nThis 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.\n\nThe skill is designed for users who need thorough content analysis and reference documentation from educational videos, lectures, tutorials, or informational content.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- User provides a YouTube video URL and wants a detailed summary\n- User needs to document video content for reference without rewatching\n- User wants to extract insights, key points, and arguments from educational content\n- User needs transcripts from YouTube videos for analysis\n- User asks to \"summarize\", \"resume\", or \"extract content\" from YouTube videos\n- User wants comprehensive documentation prioritizing completeness over brevity\n\n## Step 0: Discovery & Setup\n\nBefore processing videos, validate the environment and dependencies:\n\n```bash\n# Check if youtube-transcript-api is installed\npython3 -c \"import youtube_transcript_api\" 2>\u002Fdev\u002Fnull\nif [ $? -ne 0 ]; then\n    echo \"⚠️  youtube-transcript-api not found\"\n    # Offer to install\nfi\n\n# Check Python availability\nif ! command -v python3 &>\u002Fdev\u002Fnull; then\n    echo \"❌ Python 3 is required but not installed\"\n    exit 1\nfi\n```\n\n**Ask the user if dependency is missing:**\n\n```\nyoutube-transcript-api is required but not installed.\n\nWould you like to install it now?\n- [ ] Yes - Install with pip (pip install youtube-transcript-api)\n- [ ] No - I'll install it manually\n```\n\n**If user selects \"Yes\":**\n\n```bash\npip install youtube-transcript-api\n```\n\n**Verify installation:**\n\n```bash\npython3 -c \"import youtube_transcript_api; print('✅ youtube-transcript-api installed successfully')\"\n```\n\n## Main Workflow\n\n### Progress Tracking Guidelines\n\nThroughout the workflow, display a visual progress gauge before each step to keep the user informed. The gauge format is:\n\n```bash\necho \"[████░░░░░░░░░░░░░░░░] 20% - Step 1\u002F5: Validating URL\"\n```\n\n**Format specifications:**\n- 20 characters wide (use █ for filled, ░ for empty)\n- Percentage increments: Step 1=20%, Step 2=40%, Step 3=60%, Step 4=80%, Step 5=100%\n- Step counter showing current\u002Ftotal (e.g., \"Step 3\u002F5\")\n- Brief description of current phase\n\n**Display the initial status box before Step 1:**\n\n```\n╔══════════════════════════════════════════════════════════════╗\n║     📹  YOUTUBE SUMMARIZER - Processing Video                ║\n╠══════════════════════════════════════════════════════════════╣\n║ → Step 1: Validating URL                 [IN PROGRESS]       ║\n║ ○ Step 2: Checking Availability                              ║\n║ ○ Step 3: Extracting Transcript                              ║\n║ ○ Step 4: Generating Summary                                 ║\n║ ○ Step 5: Formatting Output                                  ║\n╠══════════════════════════════════════════════════════════════╣\n║ Progress: ██████░░░░░░░░░░░░░░░░░░░░░░░░  20%               ║\n╚══════════════════════════════════════════════════════════════╝\n```\n\n### Step 1: Validate YouTube URL\n\n**Objective:** Extract video ID and validate URL format.\n\n**Supported URL Formats:**\n- `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutu.be\u002FVIDEO_ID`\n- `https:\u002F\u002Fm.youtube.com\u002Fwatch?v=VIDEO_ID`\n\n**Actions:**\n\n```bash\n# Extract video ID using regex or URL parsing\nURL=\"$USER_PROVIDED_URL\"\n\n# Pattern 1: youtube.com\u002Fwatch?v=VIDEO_ID\nif echo \"$URL\" | grep -qE 'youtube\\.com\u002Fwatch\\?v='; then\n    VIDEO_ID=$(echo \"$URL\" | sed -E 's\u002F.*[?&]v=([^&]+).*\u002F\\1\u002F')\n# Pattern 2: youtu.be\u002FVIDEO_ID  \nelif echo \"$URL\" | grep -qE 'youtu\\.be\u002F'; then\n    VIDEO_ID=$(echo \"$URL\" | sed -E 's\u002F.*youtu\\.be\\\u002F([^?]+).*\u002F\\1\u002F')\nelse\n    echo \"❌ Invalid YouTube URL format\"\n    exit 1\nfi\n\necho \"📹 Video ID extracted: $VIDEO_ID\"\n```\n\n**If URL is invalid:**\n\n```\n❌ Invalid YouTube URL\n\nPlease provide a valid YouTube URL in one of these formats:\n- https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\n- https:\u002F\u002Fyoutu.be\u002FVIDEO_ID\n\nExample: https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dQw4w9WgXcQ\n```\n\n### Step 2: Check Video & Transcript Availability\n\n**Progress:**\n```bash\necho \"[████████░░░░░░░░░░░░] 40% - Step 2\u002F5: Checking Availability\"\n```\n\n**Objective:** Verify video exists and transcript is accessible.\n\n**Actions:**\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound\nimport sys\n\nvideo_id = sys.argv[1]\n\ntry:\n    # Get list of available transcripts\n    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)\n    \n    print(f\"✅ Video accessible: {video_id}\")\n    print(\"📝 Available transcripts:\")\n    \n    for transcript in transcript_list:\n        print(f\"  - {transcript.language} ({transcript.language_code})\")\n        if transcript.is_generated:\n            print(\"    [Auto-generated]\")\n    \nexcept TranscriptsDisabled:\n    print(f\"❌ Transcripts are disabled for video {video_id}\")\n    sys.exit(1)\n    \nexcept NoTranscriptFound:\n    print(f\"❌ No transcript found for video {video_id}\")\n    sys.exit(1)\n    \nexcept Exception as e:\n    print(f\"❌ Error accessing video: {e}\")\n    sys.exit(1)\n```\n\n**Error Handling:**\n\n| Error | Message | Action |\n|-------|---------|--------|\n| Video not found | \"❌ Video does not exist or is private\" | Ask user to verify URL |\n| Transcripts disabled | \"❌ Transcripts are disabled for this video\" | Cannot proceed |\n| No transcript available | \"❌ No transcript found (not auto-generated or manually added)\" | Cannot proceed |\n| Private\u002Frestricted video | \"❌ Video is private or restricted\" | Ask for public video |\n\n### Step 3: Extract Transcript\n\n**Progress:**\n```bash\necho \"[████████████░░░░░░░░] 60% - Step 3\u002F5: Extracting Transcript\"\n```\n\n**Objective:** Retrieve transcript in preferred language.\n\n**Actions:**\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi\n\nvideo_id = \"VIDEO_ID\"\n\ntry:\n    # Try to get transcript in user's preferred language first\n    # Fall back to English if not available\n    transcript = YouTubeTranscriptApi.get_transcript(\n        video_id, \n        languages=['pt', 'en']  # Prefer Portuguese, fallback to English\n    )\n    \n    # Combine transcript segments into full text\n    full_text = \" \".join([entry['text'] for entry in transcript])\n    \n    # Get video metadata\n    from youtube_transcript_api import YouTubeTranscriptApi\n    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)\n    \n    print(\"✅ Transcript extracted successfully\")\n    print(f\"📊 Transcript length: {len(full_text)} characters\")\n    \n    # Save to temporary file for processing\n    with open(f\"\u002Ftmp\u002Ftranscript_{video_id}.txt\", \"w\") as f:\n        f.write(full_text)\n    \nexcept Exception as e:\n    print(f\"❌ Error extracting transcript: {e}\")\n    exit(1)\n```\n\n**Transcript Processing:**\n\n- Combine all transcript segments into coherent text\n- Preserve punctuation and formatting where available\n- Remove duplicate or overlapping segments (if auto-generated artifacts)\n- Store in temporary file for analysis\n\n### Step 4: Generate Comprehensive Summary\n\n**Progress:**\n```bash\necho \"[████████████████░░░░] 80% - Step 4\u002F5: Generating Summary\"\n```\n\n**Objective:** Apply enhanced STAR + R-I-S-E prompt to create detailed summary.\n\n**Prompt Applied:**\n\nUse the enhanced prompt from Phase 2 (STAR + R-I-S-E framework) with the extracted transcript as input.\n\n**Actions:**\n\n1. Load the full transcript text\n2. Apply the comprehensive summarization prompt\n3. Use AI model (Claude\u002FGPT) to generate structured summary\n4. Ensure output follows the defined structure:\n   - Header with video metadata\n   - Executive synthesis\n   - Detailed section-by-section breakdown\n   - Key insights and conclusions\n   - Concepts and terminology\n   - Resources and references\n\n**Implementation:**\n\n```bash\n# Use the transcript file as input to the AI prompt\nTRANSCRIPT_FILE=\"\u002Ftmp\u002Ftranscript_${VIDEO_ID}.txt\"\n\n# The AI agent will:\n# 1. Read the transcript\n# 2. Apply the STAR + R-I-S-E summarization framework\n# 3. Generate comprehensive Markdown output\n# 4. Structure with headers, lists, and highlights\n\nRead \"$TRANSCRIPT_FILE\"  # Read transcript into context\n```\n\nThen apply the full summarization prompt (from enhanced version in Phase 2).\n\n### Step 5: Format and Present Output\n\n**Progress:**\n```bash\necho \"[████████████████████] 100% - Step 5\u002F5: Formatting Output\"\n```\n\n**Objective:** Deliver the summary in clean, well-structured Markdown.\n\n**Output Structure:**\n\n```markdown\n# [Video Title]\n\n**Canal:** [Channel Name]  \n**Duração:** [Duration]  \n**URL:** [https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID]  \n**Data de Publicação:** [Date if available]\n\n\n## 📝 Detailed Summary\n\n### [Topic 1]\n\n[Comprehensive explanation with examples, data, quotes...]\n\n#### [Subtopic 1.1]\n\n[Detailed breakdown...]\n\n### [Topic 2]\n\n[Continued detailed analysis...]\n\n\n## 📚 Concepts and Terminology\n\n- **[Term 1]:** [Definition and context]\n- **[Term 2]:** [Definition and context]\n\n\n## 📌 Conclusion\n\n[Final synthesis and takeaways]\n\n\n### **Example 2: Missing Dependency**\n\n**User Input:**\n```\nclaude> summarize this youtube video https:\u002F\u002Fyoutu.be\u002Fabc123\n```\n\n**Skill Response:**\n\n```\n⚠️  youtube-transcript-api not installed\n\nThis skill requires the Python library 'youtube-transcript-api'.\n\nWould you like me to install it now?\n- [ ] Yes - Install with pip\n- [ ] No - I'll install manually\n```\n\n**User selects \"Yes\":**\n\n```bash\n$ pip install youtube-transcript-api\nSuccessfully installed youtube-transcript-api-0.6.1\n\n✅ Installation complete! Proceeding with video summary...\n```\n\n\n### **Example 4: Invalid URL**\n\n**User Input:**\n```\nclaude> summarize youtube video www.youtube.com\u002Fsome-video\n```\n\n**Skill Response:**\n\n```\n❌ Invalid YouTube URL format\n\nExpected format examples:\n- https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\n- https:\u002F\u002Fyoutu.be\u002FVIDEO_ID\n\nPlease provide a valid YouTube video URL.\n```\n\n\n## 📊 Executive Summary\n\nThis 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.\n\n[... continued detailed summary ...]\n```\n\n**Save Options:**\n\n```\nWhat would you like to save?\n→ Summary + raw transcript\n\n✅ File saved: resumo-exemplo123-2026-02-01.md (includes raw transcript)\n[████████████████████] 100% - ✓ Processing complete!\n```\n\n\nWelcome to this comprehensive tutorial on machine learning fundamentals. In today's video, we'll explore the core concepts that power modern AI systems...\n```\n\n\n**Version:** 1.2.0\n**Last Updated:** 2026-02-02\n**Maintained By:** Eric Andrade\n","# youtube-summarizer\n\n## Purpose\n\nThis 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.\n\nThe skill is designed for users who need thorough content analysis and reference documentation from educational videos, lectures, tutorials, or informational content.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- User provides a YouTube video URL and wants a detailed summary\n- User needs to document video content for reference without rewatching\n- User wants to extract insights, key points, and arguments from educational content\n- User needs transcripts from YouTube videos for analysis\n- User asks to \"summarize\", \"resume\", or \"extract content\" from YouTube videos\n- User wants comprehensive documentation prioritizing completeness over brevity\n\n## Step 0: Discovery & Setup\n\nBefore processing videos, validate the environment and dependencies:\n\n```bash\n# Check if youtube-transcript-api is installed\npython3 -c \"import youtube_transcript_api\" 2>\u002Fdev\u002Fnull\nif [ $? -ne 0 ]; then\n    echo \"⚠️  youtube-transcript-api not found\"\n    # Offer to install\nfi\n\n# Check Python availability\nif ! command -v python3 &>\u002Fdev\u002Fnull; then\n    echo \"❌ Python 3 is required but not installed\"\n    exit 1\nfi\n```\n\n**Ask the user if dependency is missing:**\n\n```\nyoutube-transcript-api is required but not installed.\n\nWould you like to install it now?\n- [ ] Yes - Install with pip (pip install youtube-transcript-api)\n- [ ] No - I'll install it manually\n```\n\n**If user selects \"Yes\":**\n\n```bash\npip install youtube-transcript-api\n```\n\n**Verify installation:**\n\n```bash\npython3 -c \"import youtube_transcript_api; print('✅ youtube-transcript-api installed successfully')\"\n```\n\n## Main Workflow\n\n### Progress Tracking Guidelines\n\nThroughout the workflow, display a visual progress gauge before each step to keep the user informed. The gauge format is:\n\n```bash\necho \"[████░░░░░░░░░░░░░░░░] 20% - Step 1\u002F5: Validating URL\"\n```\n\n**Format specifications:**\n- 20 characters wide (use █ for filled, ░ for empty)\n- Percentage increments: Step 1=20%, Step 2=40%, Step 3=60%, Step 4=80%, Step 5=100%\n- Step counter showing current\u002Ftotal (e.g., \"Step 3\u002F5\")\n- Brief description of current phase\n\n**Display the initial status box before Step 1:**\n\n```\n╔══════════════════════════════════════════════════════════════╗\n║     📹  YOUTUBE SUMMARIZER - Processing Video                ║\n╠══════════════════════════════════════════════════════════════╣\n║ → Step 1: Validating URL                 [IN PROGRESS]       ║\n║ ○ Step 2: Checking Availability                              ║\n║ ○ Step 3: Extracting Transcript                              ║\n║ ○ Step 4: Generating Summary                                 ║\n║ ○ Step 5: Formatting Output                                  ║\n╠══════════════════════════════════════════════════════════════╣\n║ Progress: ██████░░░░░░░░░░░░░░░░░░░░░░░░  20%               ║\n╚══════════════════════════════════════════════════════════════╝\n```\n\n### Step 1: Validate YouTube URL\n\n**Objective:** Extract video ID and validate URL format.\n\n**Supported URL Formats:**\n- `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutu.be\u002FVIDEO_ID`\n- `https:\u002F\u002Fm.youtube.com\u002Fwatch?v=VIDEO_ID`\n\n**Actions:**\n\n```bash\n# Extract video ID using regex or URL parsing\nURL=\"$USER_PROVIDED_URL\"\n\n# Pattern 1: youtube.com\u002Fwatch?v=VIDEO_ID\nif echo \"$URL\" | grep -qE 'youtube\\.com\u002Fwatch\\?v='; then\n    VIDEO_ID=$(echo \"$URL\" | sed -E 's\u002F.*[?&]v=([^&]+).*\u002F\\1\u002F')\n# Pattern 2: youtu.be\u002FVIDEO_ID  \nelif echo \"$URL\" | grep -qE 'youtu\\.be\u002F'; then\n    VIDEO_ID=$(echo \"$URL\" | sed -E 's\u002F.*youtu\\.be\\\u002F([^?]+).*\u002F\\1\u002F')\nelse\n    echo \"❌ Invalid YouTube URL format\"\n    exit 1\nfi\n\necho \"📹 Video ID extracted: $VIDEO_ID\"\n```\n\n**If URL is invalid:**\n\n```\n❌ Invalid YouTube URL\n\nPlease provide a valid YouTube URL in one of these formats:\n- https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\n- https:\u002F\u002Fyoutu.be\u002FVIDEO_ID\n\nExample: https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dQw4w9WgXcQ\n```\n\n### Step 2: Check Video & Transcript Availability\n\n**Progress:**\n```bash\necho \"[████████░░░░░░░░░░░░] 40% - Step 2\u002F5: Checking Availability\"\n```\n\n**Objective:** Verify video exists and transcript is accessible.\n\n**Actions:**\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound\nimport sys\n\nvideo_id = sys.argv[1]\n\ntry:\n    # Get list of available transcripts\n    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)\n    \n    print(f\"✅ Video accessible: {video_id}\")\n    print(\"📝 Available transcripts:\")\n    \n    for transcript in transcript_list:\n        print(f\"  - {transcript.language} ({transcript.language_code})\")\n        if transcript.is_generated:\n            print(\"    [Auto-generated]\")\n    \nexcept TranscriptsDisabled:\n    print(f\"❌ Transcripts are disabled for video {video_id}\")\n    sys.exit(1)\n    \nexcept NoTranscriptFound:\n    print(f\"❌ No transcript found for video {video_id}\")\n    sys.exit(1)\n    \nexcept Exception as e:\n    print(f\"❌ Error accessing video: {e}\")\n    sys.exit(1)\n```\n\n**Error Handling:**\n\n| Error | Message | Action |\n|-------|---------|--------|\n| Video not found | \"❌ Video does not exist or is private\" | Ask user to verify URL |\n| Transcripts disabled | \"❌ Transcripts are disabled for this video\" | Cannot proceed |\n| No transcript available | \"❌ No transcript found (not auto-generated or manually added)\" | Cannot proceed |\n| Private\u002Frestricted video | \"❌ Video is private or restricted\" | Ask for public video |\n\n### Step 3: Extract Transcript\n\n**Progress:**\n```bash\necho \"[████████████░░░░░░░░] 60% - Step 3\u002F5: Extracting Transcript\"\n```\n\n**Objective:** Retrieve transcript in preferred language.\n\n**Actions:**\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi\n\nvideo_id = \"VIDEO_ID\"\n\ntry:\n    # Try to get transcript in user's preferred language first\n    # Fall back to English if not available\n    transcript = YouTubeTranscriptApi.get_transcript(\n        video_id, \n        languages=['pt', 'en']  # Prefer Portuguese, fallback to English\n    )\n    \n    # Combine transcript segments into full text\n    full_text = \" \".join([entry['text'] for entry in transcript])\n    \n    # Get video metadata\n    from youtube_transcript_api import YouTubeTranscriptApi\n    transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)\n    \n    print(\"✅ Transcript extracted successfully\")\n    print(f\"📊 Transcript length: {len(full_text)} characters\")\n    \n    # Save to temporary file for processing\n    with open(f\"\u002Ftmp\u002Ftranscript_{video_id}.txt\", \"w\") as f:\n        f.write(full_text)\n    \nexcept Exception as e:\n    print(f\"❌ Error extracting transcript: {e}\")\n    exit(1)\n```\n\n**Transcript Processing:**\n\n- Combine all transcript segments into coherent text\n- Preserve punctuation and formatting where available\n- Remove duplicate or overlapping segments (if auto-generated artifacts)\n- Store in temporary file for analysis\n\n### Step 4: Generate Comprehensive Summary\n\n**Progress:**\n```bash\necho \"[████████████████░░░░] 80% - Step 4\u002F5: Generating Summary\"\n```\n\n**Objective:** Apply enhanced STAR + R-I-S-E prompt to create detailed summary.\n\n**Prompt Applied:**\n\nUse the enhanced prompt from Phase 2 (STAR + R-I-S-E framework) with the extracted transcript as input.\n\n**Actions:**\n\n1. Load the full transcript text\n2. Apply the comprehensive summarization prompt\n3. Use AI model (Claude\u002FGPT) to generate structured summary\n4. Ensure output follows the defined structure:\n   - Header with video metadata\n   - Executive synthesis\n   - Detailed section-by-section breakdown\n   - Key insights and conclusions\n   - Concepts and terminology\n   - Resources and references\n\n**Implementation:**\n\n```bash\n# Use the transcript file as input to the AI prompt\nTRANSCRIPT_FILE=\"\u002Ftmp\u002Ftranscript_${VIDEO_ID}.txt\"\n\n# The AI agent will:\n# 1. Read the transcript\n# 2. Apply the STAR + R-I-S-E summarization framework\n# 3. Generate comprehensive Markdown output\n# 4. Structure with headers, lists, and highlights\n\nRead \"$TRANSCRIPT_FILE\"  # Read transcript into context\n```\n\nThen apply the full summarization prompt (from enhanced version in Phase 2).\n\n### Step 5: Format and Present Output\n\n**Progress:**\n```bash\necho \"[████████████████████] 100% - Step 5\u002F5: Formatting Output\"\n```\n\n**Objective:** Deliver the summary in clean, well-structured Markdown.\n\n**Output Structure:**\n\n```markdown\n# [Video Title]\n\n**Canal:** [Channel Name]  \n**Duração:** [Duration]  \n**URL:** [https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID]  \n**Data de Publicação:** [Date if available]\n\n\n## 📝 Detailed Summary\n\n### [Topic 1]\n\n[Comprehensive explanation with examples, data, quotes...]\n\n#### [Subtopic 1.1]\n\n[Detailed breakdown...]\n\n### [Topic 2]\n\n[Continued detailed analysis...]\n\n\n## 📚 Concepts and Terminology\n\n- **[Term 1]:** [Definition and context]\n- **[Term 2]:** [Definition and context]\n\n\n## 📌 Conclusion\n\n[Final synthesis and takeaways]\n\n\n### **Example 2: Missing Dependency**\n\n**User Input:**\n```\nclaude> summarize this youtube video https:\u002F\u002Fyoutu.be\u002Fabc123\n```\n\n**Skill Response:**\n\n```\n⚠️  youtube-transcript-api not installed\n\nThis skill requires the Python library 'youtube-transcript-api'.\n\nWould you like me to install it now?\n- [ ] Yes - Install with pip\n- [ ] No - I'll install manually\n```\n\n**User selects \"Yes\":**\n\n```bash\n$ pip install youtube-transcript-api\nSuccessfully installed youtube-transcript-api-0.6.1\n\n✅ Installation complete! Proceeding with video summary...\n```\n\n\n### **Example 4: Invalid URL**\n\n**User Input:**\n```\nclaude> summarize youtube video www.youtube.com\u002Fsome-video\n```\n\n**Skill Response:**\n\n```\n❌ Invalid YouTube URL format\n\nExpected format examples:\n- https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\n- https:\u002F\u002Fyoutu.be\u002FVIDEO_ID\n\nPlease provide a valid YouTube video URL.\n```\n\n\n## 📊 Executive Summary\n\nThis 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.\n\n[... continued detailed summary ...]\n```\n\n**Save Options:**\n\n```\nWhat would you like to save?\n→ Summary + raw transcript\n\n✅ File saved: resumo-exemplo123-2026-02-01.md (includes raw transcript)\n[████████████████████] 100% - ✓ Processing complete!\n```\n\n\nWelcome to this comprehensive tutorial on machine learning fundamentals. In today's video, we'll explore the core concepts that power modern AI systems...\n```\n\n\n**Version:** 1.2.0\n**Last Updated:** 2026-02-02\n**Maintained By:** Eric Andrade\n",{"name":5,"risk":28,"tags":33,"source":38,"category":42,"date_added":49,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fyoutube-summarizer","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill youtube-summarizer",{"tool":62,"command":63},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill youtube-summarizer",{"tool":65,"command":66},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill youtube-summarizer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002FSKILL.md",true,[70,76,80,86],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"CHANGELOG.md","REFERENCE","参考文档",2023,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002FCHANGELOG.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"README.md",8960,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002FREADME.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fextract-transcript.py","SCRIPT","脚本",2419,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002Fscripts\u002Fextract-transcript.py",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Finstall-dependencies.sh",904,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fyoutube-summarizer\u002Fscripts\u002Finstall-dependencies.sh",[91,115,141,151,164,180],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":102,"publishedAt":44},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[103,104,105,106,107,108,109,110,111,112,113,114],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":44},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[122,123,124,125,126,127,105,128,129,130,131,132,133,134,135,136,137,138,139,140],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":44},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[148,149,122,133,134,135,136,126,105,138,150,139,140,132,130,129,128,137,127,125],"trend radar","radar","pulse",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":44},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[158,159,160,161,162,163],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":44},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[166,111,174,175,24,114,133,176,177,178,124,179,137],"Audio","cli","images","https","files","pdfs",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":44},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[182,187,188,189,137,190,177,191,192,193,194,195],"status","play","go","latest","github","discover","control","cmd","volume"]