youtube-processor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited youtube-processor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact 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.
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]" --jsonUse 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_IDYou 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-apiInstall 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 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.