This skill turns YouTube video transcripts into structured, actionable intelligence across four domains that matter to Chibitek Labs: productivity, AI prompting, platform/systems engineering, and creative building. Instead of passive consumption, every video becomes a reusable asset — extracted todos, prompts you can run immediately, frameworks you can apply, and insights mapped to your current work.
After presenting the report, always save it as a markdown file and present it to the user. This is standing behavior — do not wait to be asked.
SituationApproachUser gives a YouTube URLTry Method A (Wave Tube fetch) → fallback to Method B (python) → fallback to Method C (manual paste)User pastes raw transcriptSkip fetch, go straight to extraction pipelinePython fetch is IP-blockedUse Wave Tube web fetch — it works from server environmentsVideo has no captionsAttempt auto-generated captions; if unavailable, notify userUser wants one specific domainRun full pipeline, present only the requested domainUser wants everythingRun full pipeline, present all four intelligence reportsVery long video (1hr+)Chunk transcript, process in sections, merge outputsReport is completeAlways save as markdown file and present_files — do not ask
Wave Tube mirrors YouTube transcripts and is not IP-blocked. Always try this first.
URL pattern: https://tube.wave.co/[video-slug]-[VIDEO_ID]
To find the slug: search "[VIDEO_ID] youtube" — the Wave Tube result will appear. Or web_search for the video title + video ID; Wave Tube typically appears in results.
Use the web_fetch tool on the Wave Tube URL. The full transcript appears in the page
body under "## Transcript". Also captures: title, channel, views, duration,
description, and timestamps in the same fetch.
Why Wave Tube first: youtube-transcript-api fails with IpBlocked when Claude runs on cloud infrastructure (AWS/GCP/Azure). Wave Tube is a reliable public mirror that bypasses this entirely and also provides video metadata in the same fetch.
bash
pip install youtube-transcript-api --break-system-packages -q
python
from youtube_transcript_api import YouTubeTranscriptApi
import re
def extract_video_id(url):
patterns = [
r'(?:v=|youtu\.be/)([a-zA-Z0-9_-]{11})',
r'(?:embed/)([a-zA-Z0-9_-]{11})',
]
for p in patterns:
m = re.search(p, url)
if m:
return m.group(1)
return url # assume it's already a video ID
# IMPORTANT: Use instance method .fetch(), NOT .get_transcript()
# The API changed in v1.0+ — always instantiate first
video_id = extract_video_id("VIDEO_URL_HERE")
transcript = YouTubeTranscriptApi().fetch(video_id)
full_text = " ".join([entry.text for entry in transcript])
print(full_text)
Common mistake: YouTubeTranscriptApi.get_transcript() no longer exists in v1.0+.
Always use YouTubeTranscriptApi().fetch(video_id) — instantiated, not class method.
If both automated methods fail, ask the user to:
Then proceed with the extraction pipeline on the pasted text.
Once you have the transcript text, extract across all four domains. Each domain is independent — process them cleanly and present them in sequence.
Extract concrete, doable actions mentioned or implied in the video.
Output format:
markdown
## ✅ Todos & Action Items
- [ ] [Specific action] — [context, tool, or condition if mentioned]
Rules:
Extract principles, mental models, frameworks, and strategic advice that apply repeatedly — not just one-time instructions.
Output format:
markdown
## 💡 Advice & Frameworks
### [Framework Name]
**The idea:** ...
**Why it matters:** ...
**How to apply it:** ...
Extract any AI prompts, prompt strategies, or prompt patterns mentioned, shown, or implied. Reconstruct them as runnable prompts — not descriptions of prompts.
Output format:
markdown
## 🤖 AI Prompts & Techniques
### [Technique Name]
**Purpose:** [What this achieves]
**Prompt:**
[Full, ready-to-run prompt text in a fenced code block]
text
**Notes:** [Model, context, or usage tips]
Rules:
Extract anything relevant to systems design, platform architecture, tooling, development workflows, APIs, infrastructure patterns, or creative production.
Output format:
markdown
## ⚙️ Platform, Engineering & Creative Insights
### [Insight Name]
**Domain:** [Engineering / Platform / Creative / Tooling]
**Insight:** ...
**Application for Chibitek/UAMH:** [How this maps to UAMH, STIKI, Nexus, or OpenClaw]
Rules:
markdown
# 🎬 Intelligence Report: [VIDEO TITLE]
**Channel:** [Channel Name]
**Published:** [Date] · [Duration] · [View count]
**Topic:** [2-3 word tag]
**Source:** [Full YouTube URL]
**Summary:** [One sentence: what this video teaches and who it's for]
---
markdown
## 🏆 Top 3 Immediate Actions
1. [Highest-leverage action from the report]
2. [Second most valuable]
3. [Third]
---
*Extracted by Chibitek Labs YouTube Intelligence Extractor · [Date]*
After presenting the report in chat, immediately save it as a markdown file and present it using present_files. This is standing behavior.
File naming convention:
text
intel-[short-slug-from-title].md
Example: intel-openclaw-5-things.md
Save location: /mnt/user-data/outputs/ (or appropriate workspace output dir)
Every video intelligence report is a reusable asset. Saving automatically means the output is never lost when the chat session ends.
After any run that reveals a better approach, edge case, or new pattern, update this SKILL.md immediately. Do not wait to be asked. This is standing behavior.
What counts as an improvement worth capturing:
Trying Python fetch first in server environments The youtube-transcript-api library is always IP-blocked when Claude runs on cloud infrastructure. Go to Wave Tube first — it is faster and more reliable in this context.
Using the old class method API YouTubeTranscriptApi.get_transcript() throws AttributeError in v1.0+.
Use YouTubeTranscriptApi().fetch(video_id) — instantiated instance, not class method.
Summarizing instead of extracting Do not write a paragraph about what the video covers. Extract discrete, usable pieces. A summary is what YouTube's description does. This skill does more.
Vague action items
Bad: - [ ] Learn more about AI prompting
Good: - [ ] Try reverse prompting: ask OpenClaw to extract your goals by asking you questions
Paraphrasing prompts instead of reconstructing them If a speaker reads a prompt aloud or shows it on screen, write the actual prompt text in a fenced code block — ready to copy and run. Never just describe it.
Skipping the Chibitek mapping in Domain 4 Generic engineering insights are half as useful as ones mapped to UAMH, STIKI, or Nexus. Always close the loop on how the insight applies to Chibitek's current work.
Not saving the report automatically The report is a reusable asset. Save it every time without being asked.
Not updating the skill after improvements If this run taught you something new, update the skill before ending the session.
Before closing out a run, verify:
Wave Tube (Method A) requires no installation — use the web_fetch tool directly.
bash
pip install youtube-transcript-api --break-system-packages # Method B only
pip install yt-dlp --break-system-packages # Optional fallback
This skill is designed around Erick's four priority domains:
When insights span multiple domains, list them in all applicable sections. Always map Domain 4 insights back to UAMH, STIKI, Nexus, or OpenClaw specifically.
VersionDateChanges1.02026-04-07Initial skill created1.12026-04-07Added Wave Tube as primary fetch method (IP block fix), corrected YouTubeTranscriptApi v1.0+ syntax (.fetch() not .get_transcript()), added auto-save as standing behavior, added skill self-update rule, added changelog