Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/techboy-coder/mmdl

MMDL (Mega Music Downloader) - A tool to easily download music.
https://github.com/techboy-coder/mmdl

cli download download-music downloader mp3 music music-downloader python song youtube youtube-dl youtube-dl-wrapper

Last synced: 22 days ago
JSON representation

MMDL (Mega Music Downloader) - A tool to easily download music.

Awesome Lists containing this project

README

        

![mmdl](mmdl_image.png)

# mmdl - Mega Music Downloader

![License](https://img.shields.io/pypi/l/mmdl?style=for-the-badge) ![PyPI](https://img.shields.io/pypi/v/mmdl?style=for-the-badge) ![Downloads](https://img.shields.io/pypi/dm/mmdl?style=for-the-badge)

## What is mmdl ❓

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

### Why

- πŸ•– 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 πŸ‘‡

- Python 3

- FFmpeg

*Here is a quick guide: https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg*

## Install ❀️

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

```bash
pip install -U mmdl
```

⚑ **That’s it!** ⚑

Mmdl has been only been tested using Python 3.9.
## Usage πŸ”₯

### Go

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

```shell
mmdl go
```

### Download

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

```shell
mmdl download #(add -h for more information)
```

#### Methods

- **File** `mmdl download file `: 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](https://github.com/techboy-coder/mmdl/issues/new) with some information to reproduce your problem.

### Questions ❓

Please [start/search for a discussion](https://github.com/techboy-coder/mmdl/discussions/new).

## Contributing 🀜

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

### Steps

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.

## Credits πŸ₯‚

**The following amazing libraries helped me make this project:**

- https://github.com/tmbo/questionary - Questionary by Tom Bocklisch and Kian Cross
- https://github.com/alexmercerind/youtube-search-python - Youtube Search Python by Hiteh Kumar Saini
- https://github.com/willmcgugan/rich - Rich by Will McGugan
- https://github.com/ytdl-org/youtube-dl - YoutubeDl

## Legality βš–οΈ

**I assume no liability or responsibility for how this app is used.** Please stay legal and respect the laws in your country. This tool is intended for archiving music for which you have a license.

## License πŸ“œ

The MIT License (MIT)

Copyright (c) 2021 - techboy-coder

------