Local-life-manager video-summarize
Summarize a single YouTube video and create a note. Use when user shares a video URL or asks to summarize a specific video. Triggers on "summarize this video", "video summary", YouTube URLs.
install
source · Clone the upstream repo
git clone https://github.com/TaylorHuston/local-life-manager
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TaylorHuston/local-life-manager "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/video-summarize" ~/.claude/skills/taylorhuston-local-life-manager-video-summarize && rm -rf "$T"
manifest:
.claude/skills/video-summarize/SKILL.mdsource content
Summarize a single YouTube video and create a note in my-vault.
Usage
/video-summarize <youtube-url> [folder]
: Full YouTube URL or video IDyoutube-url
(optional): Subfolder underfolder
(e.g., "Atlassian", "Ali Abdaal"). If not specified, uses channel name.Videos/
Workflow
-
Extract video ID from URL (supports youtube.com/watch?v=, youtu.be/, and bare IDs)
-
Fetch video metadata using the youtube-catchup helper script:
python3 .claude/skills/youtube-catchup/scripts/youtube_helper.py full <video_id> -
Review the transcript and create a summary with:
- Bullet point summary of key concepts
- "Why Watch?" section with recommendation
-
Determine folder:
- Use provided folder if specified
- Otherwise use channel name from metadata
- Create folder if it doesn't exist
-
Create note at
my-vault/06 Knowledge Base/Capture/Videos/<folder>/<title>.md -
Assign tags:
- Check
for channel's default tagsyoutube-catchup/references/channels.json - If channel not in config, infer tags from the canonical list in
my-vault/09 System/Tag Index.md
- Check
Tagging
Use tags from the canonical list in
.my-vault/09 System/Tag Index.md
Common channel → tag mappings are in
.claude/skills/youtube-catchup/references/channels.json. If the channel exists there, use its tags array. Otherwise, infer appropriate tags based on content.
Format tags as:
tags: ["tag1", "tag2"]
Video Note Format
Use the exact template format:
--- class: Video media: https://www.youtube.com/watch?v=VIDEO_ID publishDate: YYYY-MM-DD status: Summarized duration: Xm or Xh Ym reviewFrequency: lastReviewedDate: review: aliases: tags: ["tag1", "tag2"] cssclasses: archived: --- Related: ## Summary - **Key point** - Details - **Key point** - Details ## Why Watch? <Brief recommendation on whether/why to watch, target audience, length note>
Summary Guidelines
- Use bullet points with bold key concepts
- Adjust detail level based on video length:
- < 5 min: 3-5 bullets
- 5-15 min: 5-8 bullets
- 15-30 min: 8-12 bullets
- 30+ min: Use sections/headers, 12+ bullets
- Focus on actionable takeaways, not timestamps
- "Why Watch?" should help user decide if they need to actually watch it
Duration Formatting
- Under 60 min:
(e.g.,Xm
)23m - 60+ min:
(e.g.,Xh Ym
)1h 15m
Title Sanitization
Remove or replace these characters for filenames:
→:-
→/-
→|-
→ (remove)?
→ (remove)"<
→ (remove)>
Examples
/video-summarize https://www.youtube.com/watch?v=abc123 /video-summarize abc123 "Tech Talks" /video-summarize https://youtu.be/xyz789 Atlassian
Path Handling
CRITICAL - Never escape spaces with backslashes:
- Use paths exactly as shown:
(with literal spaces)my-vault/06 Knowledge Base/... - The Write tool handles spaces correctly - backslash escaping creates literal
characters in directory names\ - When using Bash commands, wrap paths in double quotes:
"my-vault/06 Knowledge Base/..."
Notes
- Reuses
from youtube-catchup skill (no duplicate code)youtube_helper.py - If transcript unavailable, note this in the summary and summarize from description/title only
- Check if note already exists before creating (search by video ID in media field)