A sleek, modern desktop app to download YouTube videos and music — with automatic metadata, cover art, and playlist support. Built with Electron, powered by yt-dlp and FFmpeg.
- 🎥 MP4 Video Download — Best available quality, merged with yt-dlp + FFmpeg
- 🎵 MP3 Audio Download — 320kbps high-quality audio extraction
- 🖼️ Automatic Cover Art — Thumbnail downloaded and embedded into MP3 files
- 📝 Rich Metadata — Title, artist, album, year automatically embedded via ID3 tags
- 📋 Playlist Support — Download entire YouTube public playlists at once
- 📊 Per-Song Progress Bar — Precise progress tracking: each completed song advances the bar by its equal share
⚠️ Smart URL Handling — Detects and rejects Mix/Radio playlists, strips confusing parameters automatically- 💡 Helpful Error Messages — Plain-English errors for private playlists, 403 forbidden, unviewable mixes, etc.
- 🎨 Modern Dark UI — Glassmorphism design with smooth animations
- Node.js 14 or higher
- Internet connection (yt-dlp and FFmpeg binaries are bundled)
The easiest way to run without compiling a release:
- Clone the repository:
git clone https://github.com/taherx7/MusicYT-Downloader.git
cd MusicYT-Downloader- Double-click
Run-Debug.bat— that's it!
It automatically installs all dependencies on the first run, then launches the app directly. No manual
npm installornpm startneeded.
Only needed if you want a standalone installer:
npm run build-win # Windows (.exe installer)
npm run build-mac # macOS (.dmg)
npm run build-linux # Linux (.AppImage)- Paste any YouTube video URL into the input field
- Select MP3 (audio only) or MP4 (video)
- Click Start Download
- Choose where to save the file
- The progress bar tracks each step: fetching info → downloading → converting → metadata
- Paste a public YouTube playlist URL (e.g.
https://www.youtube.com/playlist?list=PL...) - Check "Download as full Playlist"
- Select format and click Start Download
- Choose an output folder
- The progress bar advances song-by-song until all tracks are complete
⚠️ Important: YouTube Mix / Radio playlists (URLs containinglist=RD...) are not supported by YouTube's API and will fail. Create a regular Public playlist, add your songs, and use that URL instead.
| Library | Purpose |
|---|---|
| Electron | Cross-platform desktop framework |
| yt-dlp | YouTube video/audio downloading |
FFmpeg via @ffmpeg-installer/ffmpeg |
Audio/video conversion and merging |
| Node-ID3 | MP3 ID3 metadata and cover art embedding |
| fluent-ffmpeg | FFmpeg Node.js wrapper |
- YouTube Mix / Radio playlists (
list=RD...) cannot be downloaded — YouTube's API blocks them. Use a standard public playlist. - Private playlists return a 403 error — the playlist must be set to Public.
- Age-restricted videos require authentication and cannot be downloaded without a login cookie.
- Large videos (1GB+) may take several minutes depending on your internet speed.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
taherx7
- GitHub: @taherx7
- Repository: MusicYT-Downloader
Made with ❤️ by taherx7 — give a ⭐ if this helped you!
