youtube-transcript
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube.
Skill by michalparkola
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/michalparkola-youtube-transcript
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/youtube-transcript
Tools it pre-approves 1
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash,Read,Write
What's inside
- Skill name
youtube-transcript- Description
- Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
- License
- MIT
- Allowed tools
- Bash,Read,Write
- Instructions
- 411 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# YouTube Transcript Downloader This skill helps download transcripts (subtitles/captions) from YouTube videos using yt-dlp. ## When to Use This Skill Activate this skill when the user: - Provides a YouTube URL and wants the transcript - Asks to "download transcript from YouTube" - Wants to "get captions" or "get subtitles" from a video - Asks to "transcribe a YouTube video" - Needs text content from a YouTube video ## How It Works ### Priority Order: 1. **Check if yt-dlp is installed** - install if needed 2. **List available subtitles** - see what's actually available 3. **Try manual subtitles first** (`--write-sub`) - highest quality 4. **Fallback to auto-generated** (`--write-auto-sub`) - usually available 5. **Last resort: Whisper transcription** - if no subtitles exist (requires user confirmation) 6. **Confirm the download** and show the user where the file is saved 7. **Optionally clean up** the VTT format if the user wants plain text ## Installation Check **IMPORTANT**: Always check if yt-dlp is installed first: ```bash which yt-dlp || command -v yt-dlp ``` ### If Not Installed Attempt automatic installation based on the system: **macOS (Homebrew)**: ```bash brew install yt-dlp ``` **Linux (apt/Debian/Ubuntu)**: ```bash sudo apt update && sudo apt install -y yt-dlp ``` **Alternative (pip - works on all systems)**: ```bash pip3 install yt-dlp # or python3 -m pip install yt-dlp ``` **If installation fails**: Inform the user they need to install yt-dlp manually and provide them with installation instructions from https://github.com/yt-dlp/yt-dlp#installation ## Check Available Subtitles **ALWAYS do this first** before attempting to download: ```bash yt-dlp --list-subs "YOUTUBE_URL" ``` This shows what subtitle types are available without downloading anything. Look for: - Manual subtitles (better quality) - Auto-generated subtitles (usually available) - Available languages ## Download Strategy ### Option 1: Manual Subtitles (Preferred) Try this first - highest quality, human-created: ```bash yt-dlp --write-sub --skip-download --output "OUTPUT_NAME" "YOUTUBE_URL" ``` ### Option 2: Auto-Generated Subtitles (Fallback) If manual subtitles aren't available: ```bash yt-dlp --write-auto-sub --skip-download --output "OUTPUT_NAME" "YOUTUBE_URL" ``` Both commands create a `.vtt` file (WebVTT subtitle format). ## Option 3: Whisper Transcription (Last Resort) **ONLY use this if both manual and auto-generated subtitles are unavailable.** ### Step 1: Show File Size and Ask for Confirmation ```bash # Get audio file size estimate yt-dlp --print "%(filesize,filesize_approx)s" -f "bestaudio" "YOUTUBE_URL" # Or get duration to estimate yt-dlp --print "%(duration)s %(title)s" "YOUTUBE_URL" ``` **IMPORTANT**: Display the file size to the user and ask: "No subtitles are available. I can download the audio (approximately X MB) and transcribe it using Whisper. Would you like to proceed?" **Wait for user confirmation before continuing.** ### Step 2: Check for Whisper Installation ```bash command -v whisper ``` If not installed, ask user: "Whisper is not installed. Install it with `pip install openai-whisper` (requires ~1-3GB for models)? This is a one-time installation." **Wait for user confirmation before installing.** Install if approved: ```bash pip3 install openai-whisper
From michalparkola/tapestry-skills, MIT.
More from michalparkola/tapestry-skills
- 0.631score
learn-this
michalparkola
Unified content extraction and action planning.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
scrum-sage
michalparkola
AI-powered Scrum Master and Enterprise Agility Coach based on Jeff Sutherland, Taiichi Ohno, and First Principles thinking.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
session-log
michalparkola
Summarize the current conversation session and append results to the weekly agent-log.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
unblock-action
michalparkola
Help the user unblock a vague or stuck action item by clarifying the intended output, scoping it to today, and identifying the concrete next action.
SkillDFreshness: D★ 562Claude Code +9 - 0.585score
article-extractor
michalparkola
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
SkillFFreshness: F★ 562Claude Code +9 - 0.585score
ship-learn-next
michalparkola
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework.
SkillFFreshness: F★ 562Claude Code +9
Signals
- Stars
- 562
- Forks
- 67
- Open issues
- 1
- Last commit (this folder)
- Oct 24, 2025 (1 year ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/michalparkola/tapestry-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from michalparkola
- 0.631score
learn-this
michalparkola
Unified content extraction and action planning.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
scrum-sage
michalparkola
AI-powered Scrum Master and Enterprise Agility Coach based on Jeff Sutherland, Taiichi Ohno, and First Principles thinking.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
session-log
michalparkola
Summarize the current conversation session and append results to the weekly agent-log.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
unblock-action
michalparkola
Help the user unblock a vague or stuck action item by clarifying the intended output, scoping it to today, and identifying the concrete next action.
SkillDFreshness: D★ 562Claude Code +9 - 0.585score
article-extractor
michalparkola
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
SkillFFreshness: F★ 562Claude Code +9 - 0.585score
ship-learn-next
michalparkola
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework.
SkillFFreshness: F★ 562Claude Code +9
Cite this page
youtube-transcript skill. Agent Mart. https://agentmart.dev/skills/michalparkola-youtube-transcript (last updated 2026-10-24)