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.
npx skills add https://github.com/nicepkg/ai-workflow --skill youtube-processor
Takes a YouTube URL, extracts the transcript, and you (Claude) summarize it. Outputs Obsidian-ready markdown. Zero friction: share a link, get actionable notes.
This skill's tools live at:
/Users/eddale/Documents/GitHub/powerhouse-lab/skills/youtube-processor/tools/
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.
| Environment | Method |
|-------------|--------|
| Claude Code | Local Python script (Step 1a) |
| Claude.ai / Mac Client | API via WebFetch (Step 1b) |
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]"
For JSON output (easier to parse):
python3 get_transcript.py --url "[URL]" --json
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"
Once you have the transcript, summarize it based on what the user needs:
Quick Summary:
Detailed Analysis:
Newsletter Mining:
Create markdown with this structure:
---
source: YouTube
video_id: [ID]
url: [URL]
processed: [YYYY-MM-DD HH:MM]
tags: [youtube, video-notes]
---
# [Video Title or Topic]
**Link**: [URL]
**Processed**: [Date]
## Summary
[Your summary here]
---
## Full Transcript
[The transcript]
---
_Generated by youtube-processor skill_
Save to Ed's Zettelkasten:
/Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/
Filename format: YT - [Topic] - YYYY-MM-DD.md
| 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 |
User says:
Summarize this: https://www.youtube.com/watch?v=VIDEO_ID
You do:
python3 get_transcript.py --url "https://www.youtube.com/watch?v=VIDEO_ID"User says:
Turn this video into notes and save it: [URL]
You do:
User says:
I want to write about this video for the newsletter: [URL]
You do:
The Python tool requires:
youtube-transcript-api
Install if needed:
pip3 install youtube-transcript-api
| Version | Date | Changes |
|---------|------|---------|
| 1.1 | 2026-01-03 | Added Vercel API for Claude.ai/Mac client support |
| 1.0 | 2026-01-02 | Initial build with transcript extraction |
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.
AI-powered PPT generation with document analysis and styled images
Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker podcasts from research, chatting with documents using context-aware AI, searching across materials with full-text and vector search, or running custom content transformations. Supports 16+ AI providers including OpenAI, Anthropic, Google, Ollama, Groq, and Mistral with complete data privacy through self-hosting.
Cell (Cell Press) figure preparation: resolution (300-1000 DPI), formats (TIFF/PDF), RGB color, Avenir/Arial fonts, uppercase panel labels, strict image manipulation policies.
Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker podcasts from research, chatting with documents using context-aware AI, searching across materials with full-text and vector search, or running custom content transformations. Supports 16+ AI providers including OpenAI, Anthropic, Google, Ollama, Groq, and Mistral with complete data privacy through self-hosting.
Use when creating, editing, formatting, exporting, or extracting LibreOffice Writer (.odt) documents via UNO, including session-based edits, structured text targets, tables, images, lists, patch workflows, and snapshots.
Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.
Take nicepkg/youtube-processor from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.