Search

PythonReactSEOPDF
GitHub Skill

youtube-processor

Process YouTube videos into summarized Obsidian notes. Use when given a YouTube URL to summarize, extract insights, or turn videos into notes. Triggers on "summarize this video", "process this YouTube", "what's this video about", or any YouTube URL shared for processing.

Eddale☆ 0 Repository stars0 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

YouTube Processor

What This Does

Takes a YouTube URL, extracts the transcript, and you (Claude) summarize it. Outputs Obsidian-ready markdown. Zero friction: share a link, get actionable notes.

When to Use

  • "Summarize this video: [URL]"
  • "Turn this YouTube into notes"
  • "What's this video about?"
  • "Process this for my newsletter"
  • Any YouTube URL shared for processing

Location

This skill's tools live at:

/Users/eddale/Documents/GitHub/powerhouse-lab/skills/youtube-processor/tools/

How It Works

Step 1: Python extracts the transcript (no API key needed) Step 2: You (Claude) summarize using your intelligence + context Step 3: You write the Obsidian-formatted output

This approach means you can use mission-context, newsletter-coach, and other skills during summarization.


Instructions

Which Method to Use
Environment Method
Claude Code Local Python script (Step 1a)
Claude.ai / Mac Client API via WebFetch (Step 1b)

Step 1a: Extract Transcript (Claude Code)

Run the Python tool to get the transcript:

cd /Users/eddale/Documents/GitHub/powerhouse-lab/skills/youtube-processor/tools && \
python3 get_transcript.py --url "[URL]"

With timestamps (for key moments):

python3 get_transcript.py --url "[URL]" --timestamps

For JSON output (easier to parse):

python3 get_transcript.py --url "[URL]" --json
python3 get_transcript.py --url "[URL]" --json --timestamps

The --timestamps flag includes timing for each segment, allowing you to identify and cite key moments with precise timestamps like [12:34].

Step 1b: Extract Transcript (Claude.ai / Mac Client)

Use the API endpoint via WebFetch:

WebFetch: https://youtube-processor-eight.vercel.app/transcript?url=[VIDEO_URL]

The API returns JSON:

{
  "success": true,
  "video_id": "abc123",
  "language": "en",
  "transcript": "...",
  "char_count": 5000,
  "word_count": 850
}

Example prompt for WebFetch: "Extract the transcript text from the response"


Step 2: Summarize the Transcript

Once you have the transcript, summarize it based on what the user needs:

Quick Summary:

  • Headline (1 sentence)
  • Key points (3-5 bullets)
  • Main takeaway

Detailed Analysis:

  • Headline summary
  • Key points with context
  • Main takeaways
  • Action items mentioned
  • How this relates to Ed's work (if relevant)

Newsletter Mining:

  • Hook ideas for an article
  • Core insight/framework
  • Story beats for anecdotes
  • Takeaways for readers
  • Newsletter angle for The Little Blue Report
Step 2b: Identify Key Moments (Required)

When you have timestamped transcript data, always identify 3-5 key moments from the video:

What makes a "key moment":

  • Major insight or aha moment
  • Framework or mental model introduced
  • Memorable quote or story
  • Practical technique explained
  • Pivot point in the argument

Format for key moments:

**[Insight name]** [12:34] - Brief description of the moment

Example:

**The Permission Myth** [3:42] - Explains why waiting for permission kills more dreams than failure
**The 3-Hour Rule** [15:18] - Framework for deep work: protect 3 uninterrupted hours daily
**Client Story: Sarah** [22:05] - Powerful example of transformation after 90-day challenge

Use timestamps from the transcript data. Match the timestamp to where the insight BEGINS, not where it's fully explained.

Step 3: Format for Obsidian

Create markdown with this structure:

---
source: YouTube
video_id: [ID]
url: [URL]
processed: [YYYY-MM-DD HH:MM]
tags: [youtube, video-notes]
mission_areas: [BlackBelt, Powerhouse, Newsletter, Prototyping, Daily workflow, Skill building]
action_verdict: [Act now | Bookmark | Ignore | Research]
---

# [Video Title or Topic]

**Link**: [URL]
**Processed**: [Date]

## Key Moments

[3-5 timestamped key insights from the video]

- **[Insight Name]** [MM:SS] - Brief description
- **[Insight Name]** [MM:SS] - Brief description
- **[Insight Name]** [MM:SS] - Brief description

_Click timestamps to jump to that moment in the video_

## Summary

[Your summary here - reference key moments with timestamps where relevant]

## Mission Relevance

**Applies to:** [Tag which mission areas this content is relevant to]
- **BlackBelt** - Coaching program work
- **Powerhouse** - AI Amplified program / members
- **Newsletter** - The Little Blue Report
- **Prototyping** - Building leverage tools
- **Daily workflow** - Personal productivity
- **Skill building** - Improving the system itself

[Brief explanation of why it matters to each tagged area]

## Action Verdict

**Verdict:** [Act now | Bookmark | Ignore | Research]

[Specific recommendation and next step if applicable]

- **Act now** - Worth immediate attention. Next step: [specific action]
- **Bookmark** - Know it exists, use when relevant
- **Ignore** - Not applicable to Ed's mission
- **Research** - Needs more info before deciding

## Learning Triggers

[Any questions or opportunities this surfaces for Ed's system]

- **Questions raised:** [What this makes you wonder about]
- **Skill opportunities:** [Could this improve an existing skill?]
- **Newsletter angles:** [Story hook or insight for The Little Blue Report]
- **Follow-up research:** [Would a research-swarm help clarify something?]

---

## Full Transcript

[The transcript]

---

_Generated by youtube-processor skill_
Step 4: Save (Optional)

Save to Ed's Zettelkasten:

/Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/

Filename format: YT - [Topic] - YYYY-MM-DD.md


Error Handling

Error Meaning What to Do
"Transcripts disabled" Creator turned off captions Video can't be processed
"No transcript found" No English captions available Try a different video
"Video unavailable" Private, deleted, or age-restricted Check the URL

Examples

Example 1: Quick Summary

User says:

Summarize this: https://www.youtube.com/watch?v=VIDEO_ID

You do:

  1. Run: python3 get_transcript.py --url "https://www.youtube.com/watch?v=VIDEO_ID"
  2. Read the transcript output
  3. Provide a summary to the user
Example 2: Save to Obsidian

User says:

Turn this video into notes and save it: [URL]

You do:

  1. Extract transcript with the Python tool
  2. Summarize the content
  3. Format as Obsidian markdown
  4. Use Write tool to save to Zettelkasten
  5. Confirm: "Saved to [filepath]"
Example 3: Newsletter Mining

User says:

I want to write about this video for the newsletter: [URL]

You do:

  1. Extract transcript
  2. Analyze for newsletter angles (hooks, insights, story beats)
  3. Present the angles
  4. Offer to hand off to newsletter-coach skill

Integration Points

  • newsletter-coach: After extracting video insights, hand off for article development
  • mission-context: Use Ed's voice and style when summarizing
  • task-clarity-scanner: Action items from videos can be added to daily notes

Dependencies

The Python tool requires:

youtube-transcript-api

Install if needed:

pip3 install youtube-transcript-api

Version History

Version Date Changes
1.2 2026-01-23 Added timestamp extraction for key moments
1.1 2026-01-03 Added Vercel API for Claude.ai/Mac client support
1.0 2026-01-02 Initial build with transcript extraction

Notes & Learnings

  • youtube-transcript-api works without API keys
  • Most videos have auto-generated English captions
  • Claude doing the summarization is better than Python calling the API (can use context)
  • ~3-5 second transcript extraction for typical videos

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-01-20
Index updated
2026-01-26
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!