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

https://github.com/yashhere/beautifymp3

A command line tool for fixing ID3 metadata and adding Album Art to MP3 songs
https://github.com/yashhere/beautifymp3

album-art cli eyed3 genius-api genius-lyrics-search id3 id3v2 lyrics meta-tags metadata-management mit-license mp3 music python python3 spotify spotify-api vscode

Last synced: about 1 year ago
JSON representation

A command line tool for fixing ID3 metadata and adding Album Art to MP3 songs

Awesome Lists containing this project

README

          



License

## Table of Contents

- [Features](#features)
- [Dependencies](#dependencies)
- [Installing](#installing)
- [Source](#source)
- [Usage](#usage)
- [Options](#options)
- [Contribute](#contribute)
- [License](#license)

## Features

1. Fixes metadata of songs based on data received from Spotify
2. Fetches lyrics from [Genius](https://www.genius.com)
3. Fetches metadata from [Spotify](https://www.spotify.com)
4. Can format filenames of songs
5. Can fetch data for a single song or complete directory

## Dependencies

### [Genius API](https://genius.com/api-clients)

1. Create an account and register an application
2. Grab Access Token
3. Set access token in config file

### [Spotify API](https://developer.spotify.com/my-applications/#!/applications/create)

1. Create an account and register an application
2. Grab Client ID and client Secret Code
3. Set both in config file

```sh
$ python addMetadata.py --config

Enter Genius key :

Enter Spotify Secret token :

Enter Spotify Client ID :
```

## Installing

### Source
```sh
$ git clone https://github.com/yash2696/BeautifyMP3
$ cd BeautifyMP3
$ python setup.py install
```

### Options
```sh
(music-tagger) ~/D/music-tagger ❯❯❯ python addMetadata.py -h
usage: addMetadata.py [-h] [-d REPAIR_DIRECTORY] [-s SONG_NAME] [-c] [-n]
[-f RENAME_FORMAT]

____ _ _ __ __ __ ____ _____
| __ ) ___ __ _ _ _| |_(_)/ _|_ _| \/ | _ \___ /
| _ \ / _ \/ _` | | | | __| | |_| | | | |\/| | |_) ||_ \
| |_) | __/ (_| | |_| | |_| | _| |_| | | | | __/___) |
|____/ \___|\__,_|\__,_|\__|_|_| \__, |_| |_|_| |____/
|___/

______________________________________________________________
| |
| Edit Metadata of MP3 files based on file name |
|____________________________________________________________|

optional arguments:
-h, --help show this help message and exit
-d REPAIR_DIRECTORY, --dir REPAIR_DIRECTORY
give path of music files directory
-s SONG_NAME, --song SONG_NAME
Only fix metadata of the file specified
-c, --config Add API Keys to config
-n, --norename Does not rename files to song title
-f RENAME_FORMAT, --format RENAME_FORMAT
Specify the Name format used in renaming, Valid
Keywords are: {title}{artist}{album} )
```

## TODO
- [ ] Add download functionality from youtube
- [ ] add support for last.fm and soundcloud if spotify fails
- [ ] add support for metrolyrics and other lyrics service if genius api fails
- [ ] add support for searching with existing id3 tags if searching with name fails
- [ ] somehow find a way to properly synchronize the lyrics with sound if possible
- [ ] add support for other file types(aac, flac etc)

## Contribute

Found an issue? Post it in the [issue tracker](https://github.com/yash2696/BeautifyMP3/issues).

Want to add another awesome feature? [Fork](https://github.com/yash2696/BeautifyMP3/fork) this repository and add your feature, then send a pull request.

## Disclaimer

The inspiration for this project is [MusicRepair](https://github.com/kalbhor/MusicRepair).

Downloading copyright songs is illegal in most of the countries. I made this tool for educational purposes and was created for my python learning process. Please support the artists by buying their music.

## License
The MIT License (MIT)
Copyright (c) 2017 Yash Agarwal