Skip to content

Repository files navigation

MusicYT Downloader 🎵

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.

License Platform Version


🖥️ Screenshot

App Screenshot


✨ Features

  • 🎥 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

📋 Prerequisites

  • Node.js 14 or higher
  • Internet connection (yt-dlp and FFmpeg binaries are bundled)

🚀 Running the App

The easiest way to run without compiling a release:

  1. Clone the repository:
git clone https://github.com/taherx7/MusicYT-Downloader.git
cd MusicYT-Downloader
  1. 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 install or npm start needed.


📦 Build a Release (Optional)

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)

📖 How to Use

Single Video

  1. Paste any YouTube video URL into the input field
  2. Select MP3 (audio only) or MP4 (video)
  3. Click Start Download
  4. Choose where to save the file
  5. The progress bar tracks each step: fetching info → downloading → converting → metadata

Playlist

  1. Paste a public YouTube playlist URL (e.g. https://www.youtube.com/playlist?list=PL...)
  2. Check "Download as full Playlist"
  3. Select format and click Start Download
  4. Choose an output folder
  5. The progress bar advances song-by-song until all tracks are complete

⚠️ Important: YouTube Mix / Radio playlists (URLs containing list=RD...) are not supported by YouTube's API and will fail. Create a regular Public playlist, add your songs, and use that URL instead.


🛠️ Technologies

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

🐛 Known Limitations

  • 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.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.


👤 Author

taherx7


Made with ❤️ by taherx7 — give a ⭐ if this helped you!