Skip to main content

A simple Python package to interact with various music platforms APIs.

Project description

yutipy

GitHub Actions Workflow Status Documentation Status PyPI License Stars Issues

Looking for an easy-to-use API or GUI to search for music, instead of using the CLI or building your own integration? Check out yutify — it’s powered by yutipy!

A simple Python package to interact with various music platforms APIs.

Table of Contents

Features

  • Simple & Easy integration with popular music APIs.
  • Search for music by artist and song title across multiple platforms.
  • Async support for Deezer, iTunes, KKBOX, Spotify, and YouTube Music.
  • Authorize and access user resources easily.

Available Music Platforms

Right now, the following music platforms are available in yutipy for searching music. New platforms will be added in the future. Feel free to request any music platform you would like me to add by opening an issue on GitHub or by emailing me.

Installation

You can install the package using pip. Make sure you have Python 3.10 or higher installed.

pip install -U yutipy

Usage Example

Here's a quick example of how to use the yutipy package to search for a song on Deezer:

from yutipy.deezer import Deezer

with Deezer() as deezer:
    result = deezer.search("Artist Name", "Song Title")
    print(result)

For asynchronous usage, you can use the matching async service class from the yutipy.async_* modules. For example:

import asyncio
from yutipy.async_deezer import AsyncDeezer

async def main():
    async with AsyncDeezer() as deezer:
        result = await deezer.search("Artist Name", "Song Title")
        print(result)

asyncio.run(main())

For more usage examples, see the Usage Examples page in docs.

Command-Line Interface (CLI)

The yutipy package includes a CLI tool that allows you to search for music directly from the command line and configure API keys interactively.

Search for Music

You can use the CLI tool to search for music across multiple platforms:

yutipy-cli --artist "Rick Astley" --song "Never Gonna Give You Up" --service spotify

Options:

  • artist (required): The name of the artist.
  • song (required): The title of the song.
  • --service (required): Specify a single service to search (e.g., deezer, spotify, itunes).
  • --limit: The number of results to retrieve (default: 5).
  • --verbose: Enable logging in the terminal.
  • --version: Show installed yutipy version and exit.

Configuration Wizard

To set up your API keys interactively, use the configuration wizard:

yutipy-config

The wizard will guide you through obtaining and setting up API keys for supported services like Spotify and KKBOX. If the required environment variables are already set, the wizard will skip those steps.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Optionally, create an issue to discuss the changes you plan to make.
  3. Create a new branch linked to that issue.
  4. Make your changes in the new branch.
  5. Write tests if you add new functionality.
  6. Ensure all tests pass before opening a pull request.
  7. Open a pull request for review.

Thank you for your contributions!

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

yutipy-5.3.1.tar.gz (110.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yutipy-5.3.1-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

File details

Details for the file yutipy-5.3.1.tar.gz.

File metadata

  • Download URL: yutipy-5.3.1.tar.gz
  • Upload date:
  • Size: 110.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for yutipy-5.3.1.tar.gz
Algorithm Hash digest
SHA256 6d37bf370a65a9ef9176d2e81a076e3d8af40f7437291a035d52aa5631e56bb6
MD5 40d611deb03dd30de62e13cf49495e23
BLAKE2b-256 72214b2530fbf6b6508b808c203fb9abae28898e79664252f4593d5f9dabc46d

See more details on using hashes here.

Provenance

The following attestation bundles were made for yutipy-5.3.1.tar.gz:

Publisher: release.yml on CheapNightbot/yutipy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yutipy-5.3.1-py3-none-any.whl.

File metadata

  • Download URL: yutipy-5.3.1-py3-none-any.whl
  • Upload date:
  • Size: 43.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for yutipy-5.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c5b6602288b30d9685790f98ba2109f40c9c932e235f6a36a81b52ca3ad8c9c
MD5 02f37930a6ea2d3ae4f45daeafcb52b7
BLAKE2b-256 52d20b514b75db91a1a1283eaf15def8b355370d1d6c3af663797cd51144a852

See more details on using hashes here.

Provenance

The following attestation bundles were made for yutipy-5.3.1-py3-none-any.whl:

Publisher: release.yml on CheapNightbot/yutipy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page