Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add devskale/skale-skills --skill "video-transcript-downloader"
Install specific skill from multi-skill repository
# Description
Download videos, audio, subtitles, and clean paragraph-style transcripts from YouTube and any other yt-dlp supported site. Use when asked to “download this video”, “save this clip”, “rip audio”, “get subtitles”, “get transcript”, or to troubleshoot yt-dlp/ffmpeg and formats/playlists.
# SKILL.md
name: video-transcript-downloader
description: Download videos, audio, subtitles, and clean paragraph-style transcripts from YouTube and any other yt-dlp supported site. Use when asked to “download this video”, “save this clip”, “rip audio”, “get subtitles”, “get transcript”, or to troubleshoot yt-dlp/ffmpeg and formats/playlists.
Video Transcript Downloader
./scripts/vtd.js can:
- Print a transcript as a clean paragraph (timestamps optional).
- Download video/audio/subtitles.
Transcript behavior:
- YouTube: fetch via
youtube-transcript-pluswhen possible. - Otherwise: pull subtitles via
yt-dlp, then clean into a paragraph.
Setup
Run the installation script to set up dependencies (including yt-dlp in a virtual environment):
./install.sh
Or manually:
uv venv
source .venv/bin/activate
uv pip install yt-dlp
pnpm install
Transcript (default: save to ./transcripts)
Transcripts are saved to ./transcripts/YYYY-MM-DD_title-short.md by default.
./scripts/vtd.js transcript --url 'https://…'
./scripts/vtd.js transcript --url 'https://…' --lang en
./scripts/vtd.js transcript --url 'https://…' --timestamps
./scripts/vtd.js transcript --url 'https://…' --keep-brackets
./scripts/vtd.js transcript --url 'https://…' --no-to-file # Print to console instead
Search
Search for videos and download transcripts (default limit: 1). Auto-detects "top N" in query. Transcripts are saved to file by default.
./scripts/vtd.js search "top 3 ai videos on reinforcement learning"
./scripts/vtd.js search "nextjs tutorial" --limit 5
./scripts/vtd.js search "..." --no-to-file --timestamps
Download video / audio / subtitles
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads
./scripts/vtd.js audio --url 'https://…' --output-dir ~/Downloads
./scripts/vtd.js subs --url 'https://…' --output-dir ~/Downloads --lang en
Formats (list + choose)
List available formats (format ids, resolution, container, audio-only, etc):
./scripts/vtd.js formats --url 'https://…'
Download a specific format id (example):
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --format 137+140
Prefer MP4 container without re-encoding (remux when possible):
./scripts/vtd.js download --url 'https://…' --output-dir ~/Downloads -- --remux-video mp4
Notes
- Default transcript output is a single paragraph. Use
--timestampsonly when asked. - Bracketed cues like
[Music]are stripped by default; keep them via--keep-brackets. - By default, transcripts are saved to
./transcripts/YYYY-MM-DD_title-short.mdin the current working directory. Use--no-to-fileto print to stdout instead. - Pass extra
yt-dlpargs after--fortranscriptfallback,download,audio,subs,formats.
./scripts/vtd.js formats --url 'https://…' -- -v
Troubleshooting (only when needed)
- Missing
yt-dlp/ffmpeg:
Run ./install.sh to fix missing yt-dlp. For ffmpeg (required for audio conversion):
brew install ffmpeg
- Verify:
./scripts/vtd.js --help
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.