Metadata-Version: 2.1
Name: mumee
Version: 0.0.4
Summary: MUsic MEtadata Explorer
Home-page: https://github.com/Billuc/Mumee
License: MIT
Keywords: mumee,metadata,python,song metadata,spotify,youtube,youtube music,music,song
Author: Billuc
Author-email: billuc@hotmail.fr
Requires-Python: >=3.9,<4.0
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Multimedia
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Utilities
Requires-Dist: python-slugify (>=8.0.1,<9.0.0)
Requires-Dist: rapidfuzz (>=3.1.1,<4.0.0)
Requires-Dist: spotipy (>=2.23.0,<3.0.0)
Requires-Dist: taipan-di (>=0.0.7,<0.0.8)
Requires-Dist: ytmusicapi (>=1.0.2,<2.0.0)
Project-URL: Documentation, https://github.com/Billuc/Mumee
Project-URL: Repository, https://github.com/Billuc/Mumee
Description-Content-Type: text/markdown

# Mumee

**Get metadata about your favorite songs and playlists !**  
Mumee stands for *MUsic MEtadata Explorer*

## Features

- Automatic metadata fetching from different services
  - Currently supported : Spotify, Youtube Music
- Metadata fetching from an URL or a query
- Supports playlist URLs
- Easy to use, straightforward interface
- Possible to use via DI integration

## Installation

### Pip

```
pip install mumee
```

### Poetry

[Poetry](https://python-poetry.org/) is a Python dependency management and packaging tool. I actually use it for this project.

```
poetry add mumee
```

## Usage

There are 2 ways to use this library : using the `SongMetadataClient` object or via the DI.

### Using SongMetadataClient

The library exposes the `SongMetadataClient` class. This class has 1 methods : `search`.

This method fetches the metadata corresponding to the request you give it, whether it is an URL or a query. It returns the result as a `SongMetadata` object or a `PlaylistMetadata` object.

**Example :**

```python
from mumee import SongMetadataClient

client = SongMetadataClient()
result = client.search("in the end - linkin park")

title = result.title # In The End
```

### Using DI

The library also exposes a `BaseMetadataClient` interface and a `add_mumee` function for [Taipan-DI](https://github.com/Billuc/Taipan-DI).

In this function, the clients are registered as a Pipeline. All you need to do is to resolve the pipeline and execute it.

**Example :**

```python
from mumee import BaseMetadataClient, add_mumee
from taipan_di import DependencyCollection

services = DependencyCollection()
add_mumee(services)

provider = services.build()
client = provider.resolve(BaseMetadataClient)

result = client.exec("in the end - linkin park")
title = result.title # In The End
```

## Inspirations

This library is partially based on spotDL's [spotify-downloader](https://github.com/spotDL/spotify-downloader).

## TODO

This library isn't stable yet and a lot of things can still be improved.
If there is something you want to see added or if something does not work as you want it to, feel free to open an issue.

Here is a list of features I have in mind and will be working on :

- Support for Amazon Music
- More metadata in the SongMetadata class
- Allow return of multiple results

