Metadata-Version: 2.1
Name: musicmaster
Version: 1.3.1
Summary: Analyze your favorite music
Author-email: Quinten Roets <qdr2104@columbia.edu>
License: MIT
Project-URL: Source Code, https://github.com/quintenroets/music
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dirhash<1,>=0.2.1
Requires-Dist: fastapi<1,>=0.103.2
Requires-Dist: hostfinder<2,>=1.0.1
Requires-Dist: mutagen<2,>=1.47.0
Requires-Dist: package-utils[context]<1,>=0.6.3
Requires-Dist: powercli<1,>=0.2.0
Requires-Dist: powertrace<1,>=0.1.1
Requires-Dist: pysftp<1,>=0.2.9
Requires-Dist: retry<1,>=0.9.2
Requires-Dist: spotipy<3,>=2.23.0
Requires-Dist: spotdl<5,>=4.2.4
Requires-Dist: superpathlib<3,>=2.0.6
Requires-Dist: webapp-starter<1,>=0.1.4
Provides-Extra: dev
Requires-Dist: hypothesis<7,>=6.91.0; extra == "dev"
Requires-Dist: httpx<1,>=0.26.0; extra == "dev"
Requires-Dist: package-dev-tools<1,>=0.5.11; extra == "dev"
Requires-Dist: package-dev-utils<1,>=0.1.6; extra == "dev"
Requires-Dist: types-pysftp<1,>=0.2.17.6; extra == "dev"
Requires-Dist: types-requests<3,>=2.31.0.10; extra == "dev"
Requires-Dist: types-retry<1,>=0.9.9.4; extra == "dev"
Provides-Extra: ci
Requires-Dist: backupmaster<2,>=1.2.13; extra == "ci"

# Music
[![PyPI version](https://badge.fury.io/py/musicmaster.svg)](https://badge.fury.io/py/musicmaster)
![PyPI downloads](https://img.shields.io/pypi/dm/musicmaster)
![Python version](https://img.shields.io/badge/python-3.10+-brightgreen)
![Operating system](https://img.shields.io/badge/os-linux-brightgreen)
![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)

![example view](https://github.com/quintenroets/music/blob/main/assets/examples/artists.png?raw=true)

A project to analyze your favorite music

The package achieves this by:
* Letting you select your favorite artists in a web interface
    * Search for new artists with search bar
    * Click on suggestions provided by AI recommender system
* Downloading the songs of your favorite artists
    * All songs if the artist is marked as favorite
    * Top 10 songs otherwise
* Letting you select your favorite songs to download in a web interface
* Postprocessing the downloaded songs:
    * Adding lyrics, title, ...
    * Setting the modified time to the release date of the song
        * useful for ordering
* Keeping track of all downloaded songs and only downloading new songs


## Usage
1) Start webapp to manage liked/favorite artists:
    ```shell
    music-webapp
    ```
2) Download new songs:
    ```shell
    music
    ```

![progress example](https://github.com/quintenroets/music/blob/main/assets/examples/updating.png?raw=true)

Set the following variables in your environment:
* SPOTAPI_ID:
* SPOTAPI_SECRET

obtain [here](https://developer.spotify.com/documentation/general/guides/authorization/app-settings/)

## Installation
```shell
pip install musicmaster
```
