YouTube Skill
Swiss army knife for YouTube using yt-dlp. Light scripts for the most common actions.
Prerequisites
-
Python 3.10+
-
yt-dlp (pip install yt-dlp or brew install yt-dlp )
-
ffmpeg (for audio extraction: brew install ffmpeg )
Scripts
All scripts are in skills/youtube/scripts/ . Output goes to skills/youtube/output/ .
transcript.py — Extract Subtitles
python transcript.py "URL" # Default: English python transcript.py "URL" --lang es # Spanish python transcript.py "URL" --timestamps # Keep timestamps
download.py — Download Video/Audio
Video
python download.py "URL" # Best quality python download.py "URL" --quality 720 # 720p max
Audio only
python download.py "URL" --audio # Best audio → mp3 python download.py "URL" --audio --format m4a # Keep as m4a
info.py — Get Metadata
python info.py "URL" # Title, duration, channel python info.py "URL" --json # Full JSON dump python info.py "URL" --formats # Available formats
playlist.py — Playlist Operations
python playlist.py "URL" # List all videos python playlist.py "URL" --download # Download all python playlist.py "URL" --download --audio # Audio only python playlist.py "URL" --range 1-5 # Videos 1-5 only
Common Workflows
Research a video:
python info.py "URL" # Check what we're working with python transcript.py "URL" # Get transcript for AI analysis
Archive a podcast:
python download.py "URL" --audio # Just the audio as mp3
Download a course:
python playlist.py "URL" --download --quality 720
Output Structure
skills/youtube/output/ ├── transcripts/ # .txt transcript files ├── videos/ # Downloaded videos ├── audio/ # Extracted audio files └── info/ # JSON metadata dumps
Notes
-
Video IDs work as well as full URLs
-
Rate limiting: wait a few minutes between bulk operations
-
Some videos have no subtitles available