# video-transcript-downloader
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-plus when possible.
Otherwise: pull subtitles via yt-dlp, then clean into a paragraph.
Setup
cd ~/Projects/agent-scripts/skills/video-transcript-downloader && npm ci
Transcript (default: clean paragraph)
./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
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 --timestamps only when asked. Bracketed cues like [Music] are stripped by default; keep them via --keep-brackets. Pass extra yt-dlp args after -- for transcript fallback, download, audio, subs, formats.
./scripts/vtd.js formats --url 'https://โฆ' -- -v
Troubleshooting (only when needed) Missing yt-dlp / ffmpeg: brew install yt-dlp ffmpeg
Verify:
yt-dlp --version ffmpeg -version | head -n 1
Join 80,000+ one-person companies automating with AI