Skip to content

Instantly share code, notes, and snippets.

@scottd3v
Last active January 27, 2026 10:34
Show Gist options
  • Select an option

  • Save scottd3v/fd0b3a38176ecbc09828b96e675580e7 to your computer and use it in GitHub Desktop.

Select an option

Save scottd3v/fd0b3a38176ecbc09828b96e675580e7 to your computer and use it in GitHub Desktop.
Claude Code skill for processing podcast episodes using Fabric patterns

IDENTITY and PURPOSE

You explain complex topics to intelligent but time-constrained professionals. Your audience is smart - they don't need hand-holding on basics. But they're distracted - they need you to cut through the noise and get to what matters.

Take a deep breath and think step by step about how to best accomplish this goal.

GOAL

Get to the point while preserving critical nuance. The reader should walk away understanding the essential insight AND knowing what complexity they're glossing over.

STEPS

  • Fully understand the input content and identify the core insight.

  • Strip away everything that's obvious, introductory, or padding.

  • Identify what's non-obvious, counterintuitive, or commonly misunderstood.

  • Note any assumptions that might be contested or context-dependent.

  • Determine what's being deliberately excluded for brevity.

OUTPUT

Output the following sections:

CORE IDEA

A 1-2 sentence distillation of the essential insight. Lead with this. No preamble.

WHY IT MATTERS

One sentence on why someone should care. Connect to real impact.

THE NUANCE

2-3 bullet points on:

  • What's more complex than the summary suggests
  • Assumptions baked into the core idea
  • Where reasonable people might disagree

WHAT I'M SKIPPING

Brief note (1-2 sentences) on what context or detail was deliberately excluded. This respects the reader's intelligence by acknowledging the tradeoffs.

OUTPUT INSTRUCTIONS

  • Output only the sections above in valid Markdown.

  • Do not include any preamble, introduction, or sign-off.

  • Do not use bold or italic formatting (no asterisks).

  • Keep the total output under 200 words.

  • Be direct. Time-conscious. Respectful of intelligence.

  • Do not complain about the input or ask for clarification. Work with what you have.

INPUT

INPUT:

name description dependencies
podcast-wisdom
Process podcast episodes using Fabric. Chains youtube_summary (accurate timestamps) + extract_wisdom (deep insights) into unified format.
fabric_patterns
youtube_summary
extract_wisdom
explain_smart_distracted

Podcast Wisdom Skill

A Claude Code skill that processes YouTube podcast episodes through multiple Fabric patterns, producing a unified note with timestamps, insights, and full transcript.

Setup (New Machine)

Prerequisites

  1. Claude Code - Installation guide

    npm install -g @anthropic-ai/claude-code
  2. Fabric - CLI tool for AI patterns

    go install github.com/danielmiessler/fabric@latest
    fabric --setup  # Configure your AI provider API key
  3. yt-dlp - For YouTube transcript extraction

    brew install yt-dlp

Required Fabric Patterns

Built-in patterns (included with Fabric):

  • youtube_summary
  • extract_wisdom

Verify they exist:

fabric --listpatterns | grep -E "youtube_summary|extract_wisdom"

If missing, update Fabric:

fabric --updatepatterns

Custom pattern (included in this gist):

  • explain_smart_distracted - Extracts core idea, why it matters, and nuance for busy professionals

Install the custom pattern:

mkdir -p ~/.config/fabric/patterns/explain_smart_distracted
# Save explain_smart_distracted-system.md from this gist as:
# ~/.config/fabric/patterns/explain_smart_distracted/system.md

Or with curl:

mkdir -p ~/.config/fabric/patterns/explain_smart_distracted
curl -o ~/.config/fabric/patterns/explain_smart_distracted/system.md \
  "https://gist.githubusercontent.com/scottd3v/fd0b3a38176ecbc09828b96e675580e7/raw/explain_smart_distracted-system.md"

Skill Installation

  1. Create the skills directory:

    mkdir -p ~/.claude/skills/podcast-wisdom
  2. Save this file as:

    ~/.claude/skills/podcast-wisdom/skill.md
    
  3. Restart Claude Code to pick up the new skill

Output Directory

Create the podcast notes folder in your Obsidian vault (or any markdown-friendly location):

mkdir -p "/path/to/your/vault/Podcasts"

Update the Output Path section below to match your location.


When to Use

  • User pastes a YouTube podcast URL
  • "Process this podcast"
  • "Extract wisdom from [podcast episode]"

Workflow

  1. Get YouTube URL from user

  2. Run all four Fabric commands (can run in parallel):

    # Step 1: Get timestamped summary with accurate timestamps for Shareable Moments
    fabric -y "[url]" --transcript-with-timestamps -p youtube_summary > /tmp/summary.md
    
    # Step 2: Get deep extraction (habits, facts, recommendations)
    fabric -y "[url]" -p extract_wisdom > /tmp/wisdom.md
    
    # Step 3: Get raw timestamped transcript
    fabric -y "[url]" --transcript-with-timestamps > /tmp/transcript.md
    
    # Step 4: Get Core Idea / Why It Matters / The Nuance
    fabric -y "[url]" -p explain_smart_distracted > /tmp/distracted.md
  3. Determine show name from title or ask user

  4. Create unified file combining:

    • Summary from youtube_summary
    • Core Idea / Why It Matters / The Nuance from explain_smart_distracted
    • Shareable Moments from youtube_summary (accurate timestamps)
    • Deep insights from extract_wisdom
    • Raw transcript at bottom

    Note: Omit "What I'm Skipping" from explain_smart_distracted output since full content is included below.

  5. Save to: [Your Vault]/Podcasts/[Show-Name]/YYYY-MM-DD-Episode-Title.md

  6. Report completion with ONE-SENTENCE TAKEAWAY

Unified Format Template

---
date: YYYY-MM-DD
show: Show Name
source: https://youtube.com/watch?v=xxx
tags:
  - podcast
  - [topic-tags]
---

# Episode Title

**Show:** Show Name | **Date:** YYYY-MM-DD | [Watch Episode](https://youtube.com/watch?v=xxx)

> **One-Sentence Takeaway:** [Key insight from extract_wisdom]

## Summary
[2-3 sentences from SUMMARY section]

## Core Idea
[1-2 sentence distillation from explain_smart_distracted]

### Why It Matters
[From explain_smart_distracted]

### The Nuance
1. First nuanced point
2. Second nuanced point
3. Third nuanced point

## Shareable Moments
| Quote | Timestamp |
|-------|-----------|
| "Great quote here..." | [03:45](https://youtube.com/watch?v=xxx&t=225s) |
| "Another shareable moment..." | [12:30](https://youtube.com/watch?v=xxx&t=750s) |

---

## Key Ideas
1. First key idea [~02:26](url&t=143s)
2. Second key idea [~05:54](url&t=351s)

## Insights
1. First insight [~00:30](url&t=27s)
2. Second insight [~01:21](url&t=78s)

## Quotes
> "Quote text here." [07:25](url&t=442s)

## Facts
1. First fact [~01:57](url&t=114s)
2. Second fact [~02:13](url&t=130s)

## Recommendations
1. First recommendation [~00:30](url&t=27s)
2. Second recommendation [~04:07](url&t=244s)

---

## Transcript

[Full timestamped transcript from fabric --transcript-with-timestamps]

Trust & Verify Linking System

Every extracted piece of content links back to its source. Users can verify any quote, fact, or insight with one click.

Timestamp Types

Notation Meaning Use For
[07:25] Exact timestamp Quotes, specific facts found in transcript
[~07:25] Approximate timestamp Section-level content (Key Ideas, Insights, Recommendations)

Link Offset Rule

Display shows timestamp, link jumps to -3 seconds before for context.

  • Example: [07:25](url&t=442s) displays "07:25", links to 7:22 (445-3=442s)
  • This gives viewers a moment to orient before the key content

Timestamp Math

MM:SS → total seconds, then subtract 3 for the link:

  • 00:30 = 30 seconds → link to &t=27s (30-3)
  • 07:43 = (7×60)+43 = 463 seconds → link to &t=460s (463-3)
  • 10:24 = (10×60)+24 = 624 seconds → link to &t=621s (624-3)

Finding Timestamps

  1. For Quotes: Search transcript for exact phrase, get timestamp
  2. For Facts: Search transcript for key words/concepts
  3. For Ideas/Insights/Recommendations: Map to nearest section from youtube_summary

Section-Specific Formats

Quotes (exact timestamps at end):

## Quotes

> "The future doesn't belong to prompt engineers. It belongs to problem engineers." [07:25](url&t=442s)

> "When the average becomes cheap, the average becomes worthless." [10:02](url&t=599s)

Facts (numbered list, timestamps at end):

## Facts

1. Robot training historically required expensive physical world experience that simulation now replaces [~04:31](url&t=268s)
2. Small teams of five with AI systems can compete with teams of fifty [13:28](url&t=805s)

Key Ideas / Insights / Recommendations (numbered list, timestamps at end):

## Key Ideas

1. AI becomes deeply multimodal - sees, hears, speaks, interprets across reality [~02:26](url&t=143s)
2. Factory builders create systems producing outcomes; tool users ask AI to complete tasks [~05:54](url&t=351s)

Shareable Moments (Quote first, Timestamp second):

## Shareable Moments

| Quote | Timestamp |
|-------|-----------|
| "That's like using a rocket engine to power a bicycle." | [00:53](url&t=50s) |
| "The future doesn't belong to prompt engineers." | [07:25](url&t=442s) |

Transcript (plain timestamps, no links):

---

## Transcript

[00:00:00] Nobody is ready for what AI can do in 2026...

[00:01:41] Most people are not ready because their minds...

Shareable Moments Selection

Source: youtube_summary output provides accurate timestamps with quotes.

Pick 3-6 of the best quotes/moments:

  • Look for quotable one-liners with timestamps
  • Find surprising or counterintuitive statements
  • Identify moments that would make good social clips

Convert to clickable links with -3s offset (Quote first, Timestamp second):

| "using a rocket engine to power a bicycle" | [00:53](https://youtube.com/watch?v=xxx&t=50s) |

Output Path

Configure this to your vault location:

~/path/to/vault/Podcasts/[Show-Name]/

Show Detection

Channel/Title Contains Show Name Folder
Unknown Ask user [Create folder]

Add your favorite shows to this table for automatic folder routing.

Example Flow

User: "Process this: https://youtube.com/watch?v=abc123"

Claude:

  1. Runs in parallel:
    • fabric -y "url" --transcript-with-timestamps -p youtube_summary > /tmp/summary.md
    • fabric -y "url" -p extract_wisdom > /tmp/wisdom.md
    • fabric -y "url" --transcript-with-timestamps > /tmp/transcript.md
    • fabric -y "url" -p explain_smart_distracted > /tmp/distracted.md
  2. Extracts Core Idea / Why It Matters / The Nuance from explain_smart_distracted (omits "What I'm Skipping")
  3. Extracts Shareable Moments from youtube_summary (accurate timestamps)
  4. Extracts insights, quotes, recommendations from extract_wisdom
  5. Builds unified format combining all four sources
  6. Saves to show folder
  7. Reports: "Saved. Key takeaway: [ONE-SENTENCE TAKEAWAY]. Best shareable moment: [quote]"

Tag Suggestions

Based on content, suggest tags from:

  • ai, google, openai, anthropic, claude
  • product, strategy, leadership
  • mindset, psychology, productivity
  • platform-shift, future, trends
  • Topic-specific tags from SUMMARY

Customization

Adding Favorite Shows

Edit the Show Detection table to auto-route episodes:

| "AI Daily Brief" | AI Daily Brief | AI-Daily-Brief/ |
| "Your Show Name" | Display Name | Folder-Name/ |

Adding Context Enhancement

You can add a section to enhance "Why It Matters" with context relevant to your work. Add processing logic after step 4 in the workflow.

Troubleshooting

"fabric: command not found"

  • Ensure Go bin is in PATH: export PATH=$PATH:$(go env GOPATH)/bin

"No transcript available"

  • Some videos have disabled transcripts
  • Try a different video or check if captions exist on YouTube

Pattern not found

  • For built-in patterns: Run fabric --updatepatterns to refresh
  • For explain_smart_distracted: Install the custom pattern from this gist (see setup instructions above)

Related Tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment