Terminal UI for downloading YouTube videos with yt-dlp.
This section is for someone who just wants to use the app.
You need Node.js 18 or newer because the app is launched with npx.
Download Node.js from https://nodejs.org/.
ffmpeg is required for:
4K / UHDBest qualityMP4 1080pMP4 720pAudio MP3
Install it with one of these:
# Windows (winget)
winget install Gyan.FFmpeg
# macOS (Homebrew)
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpegnpx yvm-ytIf you use Bun instead of Node:
bunx yvm-yt- Paste a YouTube URL.
- Pick a format.
- Wait for the download to finish.
Downloads are saved to your default Downloads folder.
Best quality: highest available quality with merge when needed4K / UHD: up to2160p, merged tomkvMP4 1080p: MP4-friendly video/audio up to1080pMP4 720p: MP4-friendly video/audio up to720pAudio MP3: extracts audio and converts to MP3Original audio: best audio-only stream without conversion
- The app accepts only
http(s)YouTube URLs. - If
yt-dlpis not installed globally, the app downloads its own binary automatically. - You must run it in an interactive terminal.
This section is for working on the project itself.
bun install
npm installbun install maintains bun.lock.
npm install maintains package-lock.json so npm audit and npm-based packaging work correctly.
bun run devnpm run check
npm run build
npm run auditRegister the package globally on your machine:
npm link
bun linkThen run it from any directory:
npx yvm-yt
bunx yvm-ytBuild output is created automatically when you pack or publish.
npm pack
npm publish