agents/skills/youtube-extractor/SKILL.md
Extract transcripts, titles, and thumbnails from YouTube videos. Use for ingesting video content, capturing captions with timestamps, or downloading video metadata.
npx skillsauth add jxnl/dots youtube-extractorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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>).
uv venv
uv add --dev yt-dlp typer
uv run python scripts/youtube_tools.py extract "https://youtube.com/watch?v=VIDEO_ID"
uv run python scripts/youtube_tools.py transcript "https://youtube.com/watch?v=VIDEO_ID"
uv run python scripts/youtube_tools.py extract <url>./.youtube-artifacts/<video-id>/
metadata.json: title, description, channel, duration, upload datetranscript.json: captions with timestampstranscript.txt: plain text transcriptthumbnail.jpg: highest resolution thumbnailFlags
--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 outputsuv run python scripts/youtube_tools.py transcript <url>transcript.json and transcript.txtFlags
--out-dir <dir>: output directory--lang <code>: preferred language--format <json|txt|both>: output format (default: both)uv run python scripts/youtube_tools.py metadata <url>metadata.jsonuv run python scripts/youtube_tools.py thumbnail <url>thumbnail.jpgFlags
--out-dir <dir>: output directory--quality <best|high|medium|low>: thumbnail quality (default: best)uv run python scripts/youtube_tools.py storyboard <url>frames/ directory with individual timestamped JPGs + storyboard_manifest.jsonFlags
--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)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
pillow: uv add --dev pillowscripts/youtube_tools.py: Typer CLI with extract, transcript, metadata, thumbnail, and storyboard commands.tools
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).
development
Use when Codex needs to write, rewrite, critique, or reply on Twitter/X in Jason Liu's personal voice. Trigger for requests like "tweet like me", "write this in my style", "make this sound like Jason", "draft a reply", or when Jason asks for Twitter copy about Codex, product building, feedback, launches, quote-tweets, or operator/value takes.
development
Build or refine single-file information-first HTML artifacts, especially index.html or text.html pages, with strong information hierarchy, restrained styling, accessible semantics, and minimal AI-generated frontend tells. Use when creating static HTML reports, research pages, explainers, briefs, dashboards, note indexes, or simple front ends whose goal is comprehension rather than marketing conversion.
development
Codex-specific, session-driven self-improvement for Codex behavior and project instructions. Use when the user asks to inspect past Codex sessions, run a "dream" pass over prior interactions, mine repeated user corrections/preferences, improve or draft skills, update repo/project `AGENTS.md` guidance, or propose durable edits to global `~/.codex/AGENTS.md`.