YouTube Fetcher
Convert YouTube videos into searchable Markdown notes with transcripts and metadata.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/youtube-fetcher-jimmysadek/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Turn a YouTube video into a structured, Obsidian-ready archival Markdown note containing its transcript, creator metadata, description, chapters, language, and capture provenance. Use when a user shares a YouTube URL or video ID and wants transcripts, captions, subtitles, notes, a knowledge-base record, summarization, analysis of what was said, or YouTube content saved to Markdown. When a user pastes only a YouTube link, fetch the note and report where it was saved.
What this skill does
YouTube Fetcher
Turn one YouTube link into one queryable Markdown knowledge note. The bundled
script uses youtube-transcript-api for captions, optionally uses yt-dlp for
richer metadata, and needs no API key.
Workflow
- Resolve
scripts/fetch_transcript.pyrelative to thisSKILL.md. Do not assume a particular Codex, Claude, Skillshare, or home-directory install path. - If the request is only a YouTube link, run the script with its defaults.
- Use
--stdoutwhen the user wants the transcript in the conversation rather than a saved note. - Use
--output-dirwhen the user names an Obsidian vault or notes directory. A specific--outputfile takes precedence. - Report the saved path and any language-fallback warning. Read the result only when the user also wants a summary, analysis, or follow-up work.
Typical invocation, where SKILL_DIR is the directory containing this file:
python3 "$SKILL_DIR/scripts/fetch_transcript.py" "https://youtu.be/VIDEO_ID"
Safe Agent Behavior
- Run without
--forcefirst. Exit code3means an existing note was found and left unchanged; report that outcome and ask before overwriting. - Never install Python packages, Homebrew packages, or
yt-dlpautomatically. If exit code2reports a missing required dependency, show the user the suggested command and ask for permission before changing their system. - Do not claim the requested language was used when the script reports a fallback. The saved note records the actual selected caption language.
- Do not silently change the output directory. The precedence is:
--output, then--output-dir, thenYOUTUBE_FETCHER_DIR, then~/yt_transcripts/.
Useful Options
# Put notes in an Obsidian vault or another directory
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --output-dir ~/Notes/Vault
# Save to one exact file
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --output ~/Notes/video.md
# Print Markdown instead of saving it
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --stdout
# Request captions in a language, with truthful English fallback
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --lang es
# Include timestamps or export raw JSON/SRT
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --timestamps
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --format json
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --format srt
# Inspect available caption languages or dependencies
python3 "$SKILL_DIR/scripts/fetch_transcript.py" URL --list
python3 "$SKILL_DIR/scripts/fetch_transcript.py" --check-deps
Other useful flags are --source, --no-description, and --force.
Capabilities and Boundaries
- Network: contacts YouTube caption endpoints and the YouTube oEmbed API.
When available,
yt-dlpcontacts YouTube for descriptions, chapters, upload dates, and duration. - Filesystem: reads only existing Markdown notes in the resolved output directory for duplicate detection and writes the requested Markdown, JSON, or SRT result there.
- Subprocess: invokes the locally installed
yt-dlpexecutable for metadata. - Dependencies: requires
youtube-transcript-apiandrequests;yt-dlpis optional. The script reports missing dependencies but does not install them. - Limits: requires captions that YouTube makes accessible. It does not download video, run Whisper, identify speakers, or translate captions.
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | Invalid input or fetch failure |
2 | Missing required dependency |
3 | Existing note preserved; overwrite not approved |
Related skills
PowerPoint Slide Decks
anthropics
Create, edit, read, and extract content from PowerPoint presentations.
Memory Search
davila7
Search conversation history and recall previous discussions, decisions, and context.
Slide Deck Creator
daymade
Generate professional PowerPoint presentations with structured content, charts, and speaker notes.
Competitive Ads Extractor
Prat011
Extract and analyze competitors' ads to discover messaging and creative strategies that work.