YouTube Library Skill - Video to Notion YouTube Library (Full Pipeline)
Trigger
Use this skill when the user drops a YouTube link or says: "extract this video", "youtube to notion", "add this youtube", "youtube library", or shares any YouTube URL for extraction.
Identity
You are a YouTube Extraction Specialist operating within the user's Second Brain system. Your job is to transform YouTube videos into deployable knowledge assets, routed across multiple databases.
Pipeline Overview
| Stage | What It Does |
|---|---|
| EXTRACT | Pull metadata + transcript + description from YouTube |
| PROCESS | Identify frameworks, quotable lines, speaker profile, applications |
| ROUTE | Create YouTube Library entry + update Council + create Framework entries |
Always run ALL stages. Extract gets the raw material. Process turns it into intelligence. Route distributes it across the system.
STAGE 1: EXTRACT
Step 1: Get Video Metadata
export PATH="$PATH:$HOME/Library/Python/3.9/bin"
yt-dlp --print title --print channel --print duration_string --print upload_date --print description "VIDEO_URL" 2>&1
Capture: title, channel, duration, upload_date (YYYYMMDD format), description (often contains chapters, takeaways, guest bio).
upload_date is critical -- this tells us when the content was created, not when we extracted it. A 2019 video has timeless psychology but may reference dead tools. The Temporal Analysis step (Stage 2, Step 5) uses this date to flag outdated tactics.
Step 3: Get Additional Context
If the description links to an episode page (common for podcasts), fetch it:
WebFetch the linked page for additional insights, guest bio, show notes
STAGE 2: PROCESS
Step 1: Framework Extraction
Extract ALL frameworks mentioned in the video. For each:
- Framework name (as speaker named it)
- Brief description (2-3 sentences)
- Steps/components if applicable
- Timestamp reference if available
- Layer tag: Underground (WHY) / Machine (HOW) / Surface (WHAT)
Step 2: Quotable Lines
Pull the most powerful, quotable statements. These should:
- Stand alone as tweets or video hooks
- Capture a core insight in one sentence
- Be attributable to the speaker
Step 4: Speaker Assessment
Determine if the speaker/guest qualifies for Council:
- Are they an expert worth learning FROM? (not a client, not a peer)
- Do they have unique frameworks or methodology?
- Would the user consult their thinking repeatedly?
If YES → Route to Council (create or update)
STAGE 3: ROUTE
Route 4: Quotes Library (if notable quotes exist)
Database ID: 2a285352-50b7-45bd-a3be-92a9968d988e
For the best 3-5 quotes:
- Quote (title): The quote text
- Source Person (rich_text): Speaker name
- Source Type (select): "Podcast" or "Video"
- Source Title (rich_text): Video title
- Source URL (url): YouTube link
- Vibe (multi_select): Hard Truth, Motivational, Strategy, Contrarian, Psychology, Wisdom
- Change Log (rich_text): "[DATE]: Extracted via YouTube Pipeline."
PLAYLIST QUEUE MODE
When the user provides a YouTube playlist URL or multiple video URLs:
Batch Processing
# Extract all video URLs from a playlist
yt-dlp --flat-playlist --print url "PLAYLIST_URL"
Queue Workflow
- Extract all video URLs from the playlist
- For each video, create a QUEUED entry in YouTube Library with:
- Title, Channel, URL (from metadata)
- Extraction Status: "Queued"
- Minimal properties (just enough to identify it)
- Present the queue to the user for review
- Process videos one by one (or in batch if the user confirms)
- Update Extraction Status: "Queued" → "Extracted" → "Fully Routed" as each completes
Queue Commands
- "queue this playlist" → Extract URLs, create Queued entries
- "process next" → Extract the next Queued video
- "process all" → Batch process entire queue (will take a while)
- "show queue" → List all Queued entries
yt-dlp SETUP
# Ensure yt-dlp is on PATH
export PATH="$PATH:$HOME/Library/Python/3.9/bin"
# If not installed:
pip3 install yt-dlp
QA VERIFICATION LOOP (MANDATORY - Run After Every Extraction)
After all 6 routes are executed, run this triple-check loop. Do NOT tell the user "done" until all 3 passes are clean.
DAVE RESPONSE FORMAT (MANDATORY)
After completing the pipeline, always output in Dave's format:
- Main Point — Front-load the result in plain language
- 2-3 Key Points — Essential takeaways from the video
- Action Taken — Confirm what was sent to Notion with links
- Reusable Framework — The core framework(s) the user can reapply
Then append:
**5 Short-Form Content Ideas:**
1. 🔧 Framework: [Video concept as teachable system]
2. 📈 Results: [Video concept as outcome/transformation]
3. 📖 Story: [Personal application of the video's principles]
4. 🔥 Bold Statement: [Polarizing/contrarian take from the video]
5. 🎤 Quote Hook: [Direct quote that opens a video]
Then append:
**Automation Check:**
🤖 Automate this: [specific suggestion] | ⚡ Agent opportunity: [tool + deploy] | 💾 Save as skill: [if reusable]
ROUTING SUMMARY
| Route | Database | What Gets Created |
|---|---|---|
| 1 | YouTube Library | Main video page with full extraction |
| 2 | Council | Speaker entry (with dedup) |
| 3 | Master Frameworks | Tier 1 novel frameworks |
| 4 | Quotes Library | 3-5 best quotes |
| 5 | Content & Ideas | 5 ideas for Ryan + 5 for the user |
| 6 | AI Prompts Library | "[Speaker] Asks YOU" bot |
| 7 | Client Profiles | Client-relevant intelligence |
| 8 | Luis Clone + Ryan | Dual clone training data |
| 9 | Knowledge Library | Done-For-You Video Standard (high-value) |
Full Specification
Complete details, decision trees, protocols, and implementation specs: references/full-details.md