mmdl - Mega Music Downloader

TLDR: MMDL is a cli app which allows you to quickly and efficiently download one or multiple songs from YouTube.

I wanted a tool to quickly and efficiently download songs/audios from YouTube based on the name of the song. I also wanted the songs to be tagged with metadata. This is why I created this simple to use tool.


  • πŸ•– Fast: Thanks to async code and multithreading.
  • ⚑ Simple: Type mmdl go and get started with downloading songs.
  • ✨ Powerful
    • Find songs based on songs query/title
    • Skip already existing songs
    • Add metadata such as artist name and artwork

Requirements πŸ‘‡

Install ❀️

Make sure you have installed FFmpeg. Else this programm won’t work.

pip install -U mmdl

⚑ That’s it! ⚑

Usage πŸ”₯


Very quick and easy way of running the cli. Few questions will be asked via prompts. This is the recommended way!

mmdl go


Fast and traditional way of running the cli. Pass arguments and have your songs downloaded. Useful for automation scripts.

mmdl download <method> #(add -h for more information)


  • File mmdl download file <location>: Get songs from file. Then download them.
  • List mmdl download list "Term1" "Term2" ... or mmdl download list -a for a prompt: Add multiple songs as cli arguments or enter them in a prompt.
  • YTMusic (beta) mmdl download ytmusi : Download multiple songs from YouTube Music liked songs playlist (via parsing HTML)
  • Single mmdl download single song name: Download a single song.

Support ⚑

Bugs πŸ›

Please open a issue with some information to reproduce your problem.

Questions ❓

Please start/search for a discussion.

Contributing 🀜

We welcome contributions very much (Even small ones). They are appreciated.


  1. Check for bugs/issues you would like to solve or think of new features you would like to implement.
  2. Fork the repo and make your changes.
  3. Send a pull request.