MUsic MEtadata Explorer
Project description
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 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 2 methods : fetch
and search
.
The fetch
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 :
from mumee import SongMetadataClient
client = SongMetadataClient()
result = client.fetch("https://open.spotify.com/track/7AB0cUXnzuSlAnyHOqmrZr")
title = result.title # Faint
artists = result.artists # ['Linkin Park']
The search
method expects a query (e.g.: {title} - {artists}) and a limit corresponding to the number of results you want. It returns a list of SongMetadata
objects that fit closest to the query that was given. This list is sorted by closest fit per client.
Example :
from mumee import SongMetadataClient
client = SongMetadataClient()
results = client.search("in the end - linkin park")
title = results[0].title # In The End
artists = results[0].artists # ['Linkin Park']
Using DI
The library also exposes the BaseMetadataClient
and BaseMetadataExplorer
interfaces and a add_mumee
function for Taipan-DI.
In this function, the clients and explorers are registered as a Pipeline. All you need to do is to resolve the pipelines and execute it.
Example 1 :
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("https://open.spotify.com/track/7AB0cUXnzuSlAnyHOqmrZr")
title = result.title # Faint
Example 2 :
from mumee import BaseMetadataExplorer, add_mumee
from taipan_di import DependencyCollection
services = DependencyCollection()
add_mumee(services)
provider = services.build()
explorer = provider.resolve(BaseMetadataExplorer)
command = SearchMetadataCommand("in the end - linkin park")
results = explorer.exec(command)
title = results[0].title # In The End
Inspirations
This library is partially based on spotDL's 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
- Re-sort explorer results
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mumee-0.0.6.tar.gz
.
File metadata
- Download URL: mumee-0.0.6.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.9.17 Linux/5.15.0-1041-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f17a319d25bac02a1c4b6ec4a50fc5835ac842804f6e5cba401de4a10199717 |
|
MD5 | 35f7a6dc35df572e7c223f296d256c97 |
|
BLAKE2b-256 | f4eb4289ad0bb733f004e77148982cb70be3540e9c5b6df78629dd99f96cac89 |
File details
Details for the file mumee-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: mumee-0.0.6-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.9.17 Linux/5.15.0-1041-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 049e0493bc412da668f5220f7f03a2e22a7c05506e3f33b636b157caec2514a7 |
|
MD5 | e676b9c2c9e3d2c4eb3d777f4939bc5d |
|
BLAKE2b-256 | 3de8d406cc9559184c0b2be93f9515828363aa3d3b84afb5539d5bd379f80f00 |