← スキル一覧に戻る

youtube-extractor
by jxnl
⭐ 131🍴 18📅 2026年1月21日
SKILL.md
name: youtube-extractor description: Extract transcripts, titles, and thumbnails from YouTube videos. Use for ingesting video content, capturing captions with timestamps, or downloading video metadata.
YouTube Extractor
Overview
Use this skill to extract transcripts (with timestamps), titles, descriptions, and thumbnails from YouTube videos. Outputs are saved under a local project directory (default: ./.youtube-artifacts/<video-id>).
Quick Start
- Create a local venv and install deps:
uv venv uv add --dev yt-dlp typer - Extract all metadata and transcript:
uv run python scripts/youtube_tools.py extract "https://youtube.com/watch?v=VIDEO_ID" - Get just the transcript:
uv run python scripts/youtube_tools.py transcript "https://youtube.com/watch?v=VIDEO_ID"
Tasks
Extract all (default)
- Command:
uv run python scripts/youtube_tools.py extract <url> - Output:
./.youtube-artifacts/<video-id>/metadata.json: title, description, channel, duration, upload datetranscript.json: captions with timestampstranscript.txt: plain text transcriptthumbnail.jpg: highest resolution thumbnail
- Behavior: Downloads all available metadata and transcript.
Flags
--out-dir <dir>: output directory--no-thumbnail: skip thumbnail download--no-transcript: skip transcript extraction--lang <code>: preferred transcript language (default: en)--overwrite / --no-overwrite: overwrite existing outputs
Transcript only
- Command:
uv run python scripts/youtube_tools.py transcript <url> - Output:
transcript.jsonandtranscript.txt - Behavior: Extracts only captions/subtitles.
Flags
--out-dir <dir>: output directory--lang <code>: preferred language--format <json|txt|both>: output format (default: both)
Metadata only
- Command:
uv run python scripts/youtube_tools.py metadata <url> - Output:
metadata.json - Behavior: Extracts title, description, channel info, duration.
Thumbnail only
- Command:
uv run python scripts/youtube_tools.py thumbnail <url> - Output:
thumbnail.jpg - Behavior: Downloads highest resolution thumbnail available.
Flags
--out-dir <dir>: output directory--quality <best|high|medium|low>: thumbnail quality (default: best)
Storyboard frames
- Command:
uv run python scripts/youtube_tools.py storyboard <url> - Output:
frames/directory with individual timestamped JPGs +storyboard_manifest.json - Behavior: Extracts YouTube's preview thumbnails (used in video scrubber) into individual frames at ~2s intervals.
Flags
--out-dir <dir>: output directory--with-transcript / -t: also extract transcript and align each segment to its nearest frame--lang <code>: transcript language (if using --with-transcript)
Higher quality frames with ffmpeg
Storyboard frames are low-res (~320x180). For full quality frames aligned to transcript timestamps:
-
Download video with yt-dlp:
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]" -o video.mp4 <url> -
Extract frames at specific timestamps from transcript.json:
ffmpeg -ss 00:01:23 -i video.mp4 -frames:v 1 frame_83s.jpg -
Or extract frames at regular intervals:
ffmpeg -i video.mp4 -vf "fps=0.5" frames/frame_%04d.jpg # 1 frame every 2 seconds
Notes
- Requires network access to YouTube.
- Some videos may not have transcripts available; auto-generated captions used as fallback.
- Storyboard command requires
pillow:uv add --dev pillow
Tools
scripts/youtube_tools.py: Typer CLI withextract,transcript,metadata,thumbnail, andstoryboardcommands.
スコア
総合スコア
60/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 100以上
+5
○最近の活動
3ヶ月以内に更新がある
0/10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です