
Youtube Transcript
- 1 installs
- 404 repo stars
- Updated August 5, 2026
- aiskillstore/marketplace
youtube-transcript is a skill that downloads and processes YouTube video subtitles with yt-dlp to produce clean transcripts and summaries.
About
youtube-transcript downloads and processes YouTube video transcripts using yt-dlp. A developer uses it to extract subtitles, convert VTT captions to clean text, and generate summaries or chapter breakdowns from video content. It prefers manual subtitles, falls back to auto-generated ones, and can transcribe audio with Whisper when no subtitles exist. The documentation is written in Korean.
- Downloads YouTube subtitles with yt-dlp
- Prefers manual subs, falls back to auto and then Whisper
- Converts VTT to clean text and dedupes lines
Youtube Transcript by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,980 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
youtube-transcript capabilities & compatibility
- Capabilities
- transcription · research
- Use cases
- transcription · research
- Platforms
- macOS · Linux
What youtube-transcript says it does
Download and process YouTube video transcripts using yt-dlp.
yt-dlp --write-sub --sub-lang en --skip-download "VIDEO_URL"
자동 생성 자막은 progressive 캡션으로 인해 중복이 많음
npx skills add https://github.com/aiskillstore/marketplace --skill youtube-transcriptAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 404 |
| Last updated | August 5, 2026 |
| Repository | aiskillstore/marketplace ↗ |
What it does
Download YouTube subtitles with yt-dlp and turn them into clean transcripts or summaries.
Who is it for?
Extracting and cleaning YouTube subtitles into usable transcripts
Skip if: Videos with no captions where large Whisper transcription is undesirable
When should I use this skill?
You need a transcript or summary from a YouTube video
What you get
A clean, deduplicated transcript ready for summaries and chapter breakdowns
- Clean transcript text
- Optional summary and chapter breakdown
By the numbers
- 5-step priority order from yt-dlp check to Whisper fallback
Files
YouTube Transcript Downloader
유튜브 영상에서 자막을 추출하고 처리하는 스킬입니다.
Priority Order
1. yt-dlp 설치 확인
2. 사용 가능한 자막 목록 확인
3. 수동 자막 우선 시도
4. 자동 생성 자막 폴백
5. 최후 수단: Whisper 변환Requirements
# macOS
brew install yt-dlp
# Linux
sudo apt install yt-dlp
# Universal
pip install yt-dlpWorkflow
Step 1: 자막 목록 확인
yt-dlp --list-subs "VIDEO_URL"Step 2: 수동 자막 다운로드 (권장)
# 한국어 자막
yt-dlp --write-sub --sub-lang ko --skip-download "VIDEO_URL"
# 영어 자막
yt-dlp --write-sub --sub-lang en --skip-download "VIDEO_URL"Step 3: 자동 생성 자막 (폴백)
yt-dlp --write-auto-sub --sub-lang ko --skip-download "VIDEO_URL"Step 4: VTT → 텍스트 변환
# VTT 파일에서 타임스탬프 제거
sed '/^[0-9]/d; /^$/d; /-->/d' subtitle.ko.vtt > transcript.txtOutput Processing
중복 제거
자동 생성 자막은 progressive 캡션으로 인해 중복이 많음:
# 중복 라인 제거
seen = set()
unique_lines = []
for line in lines:
if line not in seen:
seen.add(line)
unique_lines.append(line)요약 생성
추출된 자막으로:
- 핵심 내용 요약
- 타임스탬프별 챕터 생성
- 주요 키워드 추출
Examples
Example 1: 강의 영상 요약
User: 이 유튜브 강의 요약해줘 - https://youtube.com/watch?v=xxx
Claude:
1. yt-dlp로 자막 다운로드
2. VTT → 텍스트 변환
3. 핵심 내용 요약 생성
4. 타임스탬프별 목차 제공Example 2: 다국어 자막 추출
User: 이 영상의 영어/한국어 자막 둘 다 추출해줘
Claude:
1. --list-subs로 가용 언어 확인
2. 각 언어별 자막 다운로드
3. 정리된 텍스트 파일 제공Error Handling
| 에러 | 원인 | 해결책 |
|---|---|---|
yt-dlp not found | 미설치 | brew/apt/pip 설치 |
No subtitles available | 자막 없음 | Whisper 사용 제안 |
Invalid URL | URL 오류 | URL 형식 확인 |
Video unavailable | 비공개/삭제 | 사용자에게 알림 |
Whisper Fallback
자막이 전혀 없는 경우 (사용자 확인 필요):
# 파일 크기 확인
yt-dlp --print filesize "VIDEO_URL"
# 사용자 승인 후 오디오 다운로드
yt-dlp -x --audio-format mp3 "VIDEO_URL"
# Whisper로 변환
whisper audio.mp3 --language ko --model base주의: 대역폭/처리 시간 소요로 사용자 확인 필수
{
"schema_version": "2.0",
"meta": {
"generated_at": "2026-01-17T04:22:45.937Z",
"slug": "doyajin174-youtube-transcript",
"source_url": "https://github.com/Doyajin174/myskills/tree/main/.public/skills/youtube-transcript",
"source_ref": "main",
"model": "claude",
"analysis_version": "3.0.0",
"source_type": "community",
"content_hash": "4e8ed78ace5c662758c170f5dfd2e27951ef4b12d92d990c5e39bc4c28748add",
"tree_hash": "b54778d963984d54726de44ed556c284659aa3c444c5db3d24aa1336843a979b"
},
"skill": {
"name": "youtube-transcript",
"description": "Download and process YouTube video transcripts using yt-dlp. Use this when extracting subtitles, creating summaries from videos, or processing video content.",
"summary": "Download and process YouTube video transcripts using yt-dlp. Use this when extracting subtitles, cre...",
"icon": "📹",
"version": "1.0.0",
"author": "Doyajin174",
"license": "MIT",
"category": "documentation",
"tags": [
"youtube",
"transcript",
"captions",
"video",
"yt-dlp"
],
"supported_tools": [
"claude",
"codex",
"claude-code"
],
"risk_factors": [
"network",
"filesystem",
"external_commands"
]
},
"security_audit": {
"risk_level": "safe",
"is_blocked": false,
"safe_to_publish": true,
"summary": "This skill consists solely of documentation describing yt-dlp usage patterns for downloading YouTube transcripts. All 38 static findings are false positives: cryptographic algorithm detections are random string false positives in JSON metadata; external command detections are documentation examples, not executable code; C2 keyword detection is a SHA256 hash being misidentified. The skill contains no executable code, no network operations beyond what yt-dlp performs, and no file access beyond standard Claude tool permissions.",
"risk_factor_evidence": [
{
"factor": "network",
"evidence": [
{
"file": "skill-report.json",
"line_start": 6,
"line_end": 6
},
{
"file": "SKILL.md",
"line_start": 94,
"line_end": 94
}
]
},
{
"factor": "filesystem",
"evidence": [
{
"file": "skill-report.json",
"line_start": 6,
"line_end": 6
}
]
},
{
"factor": "external_commands",
"evidence": [
{
"file": "SKILL.md",
"line_start": 17,
"line_end": 23
},
{
"file": "SKILL.md",
"line_start": 23,
"line_end": 27
},
{
"file": "SKILL.md",
"line_start": 27,
"line_end": 36
},
{
"file": "SKILL.md",
"line_start": 36,
"line_end": 42
},
{
"file": "SKILL.md",
"line_start": 42,
"line_end": 44
},
{
"file": "SKILL.md",
"line_start": 44,
"line_end": 48
},
{
"file": "SKILL.md",
"line_start": 48,
"line_end": 54
},
{
"file": "SKILL.md",
"line_start": 54,
"line_end": 58
},
{
"file": "SKILL.md",
"line_start": 58,
"line_end": 60
},
{
"file": "SKILL.md",
"line_start": 60,
"line_end": 64
},
{
"file": "SKILL.md",
"line_start": 64,
"line_end": 67
},
{
"file": "SKILL.md",
"line_start": 67,
"line_end": 74
},
{
"file": "SKILL.md",
"line_start": 74,
"line_end": 82
},
{
"file": "SKILL.md",
"line_start": 82,
"line_end": 93
},
{
"file": "SKILL.md",
"line_start": 93,
"line_end": 101
},
{
"file": "SKILL.md",
"line_start": 101,
"line_end": 104
},
{
"file": "SKILL.md",
"line_start": 104,
"line_end": 111
},
{
"file": "SKILL.md",
"line_start": 111,
"line_end": 117
},
{
"file": "SKILL.md",
"line_start": 117,
"line_end": 118
},
{
"file": "SKILL.md",
"line_start": 118,
"line_end": 119
},
{
"file": "SKILL.md",
"line_start": 119,
"line_end": 120
},
{
"file": "SKILL.md",
"line_start": 120,
"line_end": 126
},
{
"file": "SKILL.md",
"line_start": 126,
"line_end": 135
},
{
"file": "SKILL.md",
"line_start": 32,
"line_end": 32
}
]
}
],
"critical_findings": [],
"high_findings": [],
"medium_findings": [],
"low_findings": [],
"dangerous_patterns": [],
"files_scanned": 2,
"total_lines": 313,
"audit_model": "claude",
"audited_at": "2026-01-17T04:22:45.937Z"
},
"content": {
"user_title": "Extract YouTube video transcripts",
"value_statement": "Manually created captions often have better quality than auto-generated ones. This skill provides a systematic approach to download YouTube subtitles using yt-dlp with fallback options for videos without captions.",
"seo_keywords": [
"YouTube transcript",
"YouTube captions download",
"yt-dlp",
"Claude transcript extraction",
"Codex video subtitles",
"Claude Code YouTube",
"extract subtitles",
"video transcription",
"subtitle downloader",
"YouTube subtitles"
],
"actual_capabilities": [
"Download YouTube video transcripts in multiple languages",
"Prioritize manually created subtitles over auto-generated ones",
"Convert VTT subtitle files to plain text",
"Handle videos without captions using Whisper fallback"
],
"limitations": [
"Requires yt-dlp to be installed on the system",
"Cannot extract transcripts from private or deleted videos",
"Auto-generated captions may contain errors"
],
"use_cases": [
{
"target_user": "Content creators",
"title": "Research and reference",
"description": "Extract transcripts from educational videos for quotes and references"
},
{
"target_user": "Developers",
"title": "Video summarization",
"description": "Download captions to create summaries and chapter outlines from long videos"
},
{
"target_user": "Language learners",
"title": "Multilingual content access",
"description": "Get transcripts in native and target languages for study materials"
}
],
"prompt_templates": [
{
"title": "Basic transcript",
"scenario": "Get video transcript",
"prompt": "Extract the transcript from this YouTube video: [VIDEO_URL]"
},
{
"title": "Multi-language",
"scenario": "Get multiple languages",
"prompt": "Extract both English and Korean subtitles from this video: [VIDEO_URL]"
},
{
"title": "Clean output",
"scenario": "Get plain text",
"prompt": "Download the transcript and convert it to clean text without timestamps: [VIDEO_URL]"
},
{
"title": "Full processing",
"scenario": "Complete workflow",
"prompt": "Download the transcript, remove duplicates, create a summary with key topics and timestamps: [VIDEO_URL]"
}
],
"output_examples": [
{
"input": "Extract the transcript from this YouTube lecture video about Python programming",
"output": [
"Video: Introduction to Python Functions",
"Language: English (manual captions)",
"Duration: 45 minutes",
"Summary: This lecture covers defining functions, parameters, return values, and best practices",
"Key topics: function syntax, default arguments, docstrings"
]
},
{
"input": "Get both English and Korean subtitles from this K-pop documentary",
"output": [
"Available languages: English, Korean",
"English captions saved to: video.en.vtt",
"Korean captions saved to: video.ko.vtt",
"Both files converted to plain text"
]
}
],
"best_practices": [
"Prefer manual captions over auto-generated for better accuracy",
"Verify video availability before attempting download",
"Request user confirmation before using Whisper fallback for long videos"
],
"anti_patterns": [
"Attempting to download from private or unavailable videos",
"Using auto-generated captions when manual ones are available",
"Processing large videos without checking file size first"
],
"faq": [
{
"question": "What languages are supported?",
"answer": "YouTube supports many languages. Use --list-subs to see available options for each video."
},
{
"question": "What if a video has no captions?",
"answer": "Try Whisper fallback. This downloads the audio and uses OpenAI Whisper for transcription."
},
{
"question": "Can I use this with Claude Code?",
"answer": "Yes. Install yt-dlp first, then Claude can execute the transcript extraction workflow."
},
{
"question": "Is my data safe?",
"answer": "Yes. The skill only accesses YouTube public data. No personal information is collected or stored."
},
{
"question": "Why do auto-captions have duplicates?",
"answer": "Progressive captions on YouTube repeat content. The skill includes deduplication logic for cleaner output."
},
{
"question": "How is this different from other transcript tools?",
"answer": "This skill prioritizes manually created captions for accuracy and provides systematic fallback options."
}
]
},
"file_structure": [
{
"name": "SKILL.md",
"type": "file",
"path": "SKILL.md",
"lines": 138
}
]
}
Related skills
FAQ
What tool does it use?
yt-dlp to list and download subtitles, with Whisper as a fallback when no subtitles exist.
What if there are no subtitles?
It can download the audio and transcribe it with Whisper after user confirmation.