Simple integrate of API musixmatch.com with python

Overview

Python Musixmatch

Simple integrate of API musixmatch.com with python

Github Issues MIT licensed

Logo

Quick start

$ pip install pymusixmatch

or

$ python setup.py install

Authentication

Register for an API key:

All you need to do is register in order to get your API key, a mandatory parameter for most of our API calls. It’s your personal identifier and should be kept secret.

Usage

With your key in hand, it's time to authenticate, so run:

>>> from musixmatch import Musixmatch

>>> musixmatch = Musixmatch('<apikey>')

Chart Artists Get

This api provides you the list of the top artists of a given country.

Parameters:

  • country - A valid country code (default US).
  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range 1 - 100).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.chart_artists(1, 1)

Chart Tracks Get

This api provides you the list of the top songs of a given country.

Parameters:

  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range 1 - 100).
  • f_has_lyrics - When set, filter only contents with lyrics.
  • country - A valid country code (default US).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.chart_tracks_get(1, 1)

Chart Tracks Get

Search for track in our database.

Parameters:

  • q_track - The song title
  • q_artist - The song artist
  • q_lyrics - Any word in the lyrics
  • f_artist_id - When set, filter by this artist id
  • f_music_genre_id - When set, filter by this music category id
  • f_lyrics_language - Filter by the lyrics language (en,it,..)
  • f_has_lyrics - When set, filter only contents with lyrics
  • f_track_release_group_first_release_date_min - When set, filter the tracks with release date newer than value, format is YYYYMMDD
  • f_track_release_group_first_release_date_max - When set, filter the tracks with release date older than value, format is YYYYMMDD
  • s_artist_rating - Sort by our popularity index for artists (asc|desc)
  • s_track_rating - Sort by our popularity index for tracks (asc|desc)
  • quorum_factor - Search only a part of the given query string.Allowed range is (0.1 – 0.9)
  • page - Define the page number for paginated results
  • page_size - Define the page size for paginated results. Range is 1 to 100.
  • callback - jsonp callback
  • format - Decide the output type (json or xml)
>>> musixmatch.track_search(q_artist='twentyonepilots', page_size=10, page=1, s_track_rating='desc')

Track Get

Get a track info from our database: title, artist, instrumental flag and cover art.

Parameters:

  • track_id - The musiXmatch track id.
  • commontrack_id - The musiXmatch commontrack id.
  • track_isrc - A valid ISRC identifier.
  • track_mbid - The musicbrainz recording id.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_get(15445219)

Track Lyrics Get

Get the lyrics of a track.

Parameters:

  • track_id - The musiXmatch track id.
  • track_mbid - The musicbrainz recording id.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_lyrics_get(15953433)

Track Snippet Get

Get the snippet for a given track.

A lyrics snippet is a very short representation of a song lyrics. It’s usually twenty to a hundred characters long and it’s calculated extracting a sequence of words from the lyrics.

Parameters:

  • track_id - The musiXmatch track id.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_snippet_get(16860631)

Track Snippet Get

Retreive the subtitle of a track.

Return the subtitle of a track in LRC or DFXP format. Refer to Wikipedia LRC format page or DFXP format on W3c for format specifications.

Parameters:

  • track_id - The musiXmatch track id.
  • track_mbid - The musicbrainz track id.
  • subtitle_format - The format of the subtitle (lrc,dfxp,stledu). Default to lrc.
  • f_subtitle_length - The desired length of the subtitle (seconds).
  • f_subtitle_length_max_deviation - The maximum deviation allowed from the f_subtitle_length (seconds).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_subtitle_get(14201829)

Track Richsync Get

Get the Rich sync for a track.

A rich sync is an enhanced version of the standard sync which allows:

  • position offset by single characther.
  • endless formatting options at single char level.
  • multiple concurrent voices.
  • multiple scrolling direction.

Parameters:

  • track_id - The musiXmatch track id.
  • f_sync_length - The desired length of the sync (seconds).
  • f_sync_length_max_deviation - The maximum deviation allowed.
  • from the f_sync_length (seconds).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_richsync_get(14201829)

Track Lyrics Post

Submit a lyrics to our database.

It may happen we don’t have the lyrics for a song, you can ask your users to help us sending the missing lyrics. We’ll validate every submission and in case, make it available through our api.

Please take all the necessary precautions to avoid users or automatic software to use your website/app to use this commands, a captcha solution like http://www.google.com/recaptcha or an equivalent one has to be implemented in every user interaction that ends in a POST operation on the musixmatch api.

Parameters:

  • track_i - dA valid country code (default US).
  • lyrics_body - The lyrics.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.track_lyrics_post(1471157, 'test')

Track Lyrics Post

This API method provides you the opportunity to help us improving our catalogue.

We aim to provide you with the best quality service imaginable, so we are especially interested in your detailed feedback to help us to continually improve it.

Please take all the necessary precautions to avoid users or automatic software to use your website/app to use this commands, a captcha solution like http://www.google.com/recaptcha or an equivalent one has to be implemented in every user interaction that ends in a POST operation on the musixmatch api.

Parameters:

  • lyrics_id - The musiXmatch lyrics id.
  • track_id - The musiXmatch track id.
  • feedback - The feedback to be reported, possible values are: wrong_lyrics, wrong_attribution, bad_characters,
  • lines_too_long, wrong_verses, wrong_formatting
  • format - Decide the output type json or xml (default json)
>>> musixmatch.track_lyrics_feedback_post(1471157, 4193713, 'wrong_verses')

Matcher Lyrics Get

Get the lyrics for track based on title and artist.

Parameters:

  • q_track - The song title
  • q_artist - The song artist
  • track_isrc - If you have an available isrc id in your catalogue you can query using this id only (optional)
  • format - Decide the output type json or xml (default json)
>>> musixmatch.matcher_lyrics_get('Sexy and I know it', 'LMFAO')

Matcher Track Get

Match your song against our database.

In some cases you already have some informations about the track title, artist name, album etc. A possible strategy to get the corresponding lyrics could be:

  • search our catalogue with a perfect match,
  • maybe try using the fuzzy search,
  • maybe try again using artist aliases, and so on.

The matcher.track.get method does all the job for you in a single call. This way you dont’t need to worry about the details, and you’ll get instant benefits for your application without changing a row in your code, while we take care of improving the implementation behind. Cool, uh?

Parameters:

  • q_track - The song title.
  • q_artist - The song artist.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.matcher_track_get('Lose Yourself (soundtrack)', 'Eminem')

Matcher Subtitle Get

You can use the f_subtitle_length_max_deviation to fetch subtitles within a given duration range.

Parameters:

  • q_track - The song title
  • q_artist - The song artist
  • f_subtitle_length - Filter by subtitle length in seconds
  • f_subtitle_length_max_deviation - Max deviation for a subtitle length in seconds
  • track_isrc - If you have an available isrc id in your catalogue you can query using this id only (optional)
  • format - Decide the output type json or xml (default json)

Note: This method requires a commercial plan.

>>> musixmatch.matcher_subtitle_get('Sexy and I know it', 'LMFAO', 200, 3)

Artist Get

Get the artist data from our database.

Parameters:

  • artist_id - Musixmatch artist id
  • artist_mbid - Musicbrainz artist id
  • format - Decide the output type json or xml (default json)
>>> musixmatch.artist_get(118)

Artist Search

Search for artists in our database.

Parameters:

  • q_artist - The song artist.
  • f_artist_id - When set, filter by this artist id.
  • f_artist_mbid - When set, filter by this artist musicbrainz id.
  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range is 1 to 100).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.artist_search('prodigy', 1, 1, 16439, '4a4ee089-93b1-4470-af9a-6ff575d32704')

Artist Album Get

Get the album discography of an artist.

Parameters:

  • artist_id - Musixmatch artist id.
  • artist_mbid - Musicbrainz artist id.
  • g_album_name - Group by Album Name.
  • s_release_date - Sort by release date (asc|desc).
  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range is 1 to 100).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.artist_albums_get(1039, 1, 1, 1, 'desc')

Artist Related Get

Get a list of artists somehow related to a given one.

Parameters:

  • artist_id - Musixmatch artist id.
  • artist_mbid - Musicbrainz artist id.
  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range is 1 to 100).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.artist_related_get(56, 1, 1)

Album Get

Get an album from our database: name, release_date, release_type, cover art.

Parameters:

  • album_id - The musiXmatch album id
  • format - Decide the output type json or xml (default json).
>>> musixmatch.album_get(14250417)

Album Tracks Get

This api provides you the list of the songs of an album.

Parameters:

  • album_id - Musixmatch album id.
  • album_mbid - Musicbrainz album id.
  • f_has_lyrics - When set, filter only contents with lyrics.
  • page - Define the page number for paginated results.
  • page_size - Define the page size for paginated results (range is 1 to 100).
  • format - Decide the output type json or xml (default json).
>>> musixmatch.album_tracks_get(13750844, 1, 1, '')

Tracking Url Get

Get the base url for the tracking script

With this api you’ll be able to get the base url for the tracking script you need to insert in your page to legalize your existent lyrics library.

Read more here: rights-clearance-on-your-existing-catalog

In case you’re fetching the lyrics by the musiXmatch api called track.lyrics.get you don’t need to implement this API call.

Parameters:

  • domain - Your domain name.
  • format - Decide the output type json or xml (default json).
>>> musixmatch.album_tracks_get(13750844, 1, 1, '')

Catalogue Dump Get

Get the list of our songs with the lyrics last updated information

CATALOGUE_COMMONTRACKS

Dump of our catalogue in this format:

{
    "track_name": "Shape of you",
    "artist_name": "Ed Sheeran",
	"commontrack_id": 12075763,
    "instrumental": false,
    "has_lyrics": yes,
    "updated_time": "2013-04-08T09:28:40Z"
}

Note: This method requires a commercial plan.

>>> musixmatch.catalogue_dump_get('test')

Features

Dependencies

License

MIT

Owner
Hudson Brendon
Backend Engineer
Hudson Brendon
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

OpenAPI Generator Master (5.3.1): 5.4.x (5.4.x): 6.0.x (6.0.x): ⭐ ⭐ ⭐ If you would like to contribute, please refer to guidelines and a list of open t

OpenAPI Tools 14.8k Jan 04, 2023
Automatically load stolen cookies from ChromePass

AutoCookie - Automatically loading stolen cookies from ChromePass View Demo · Report Bug · Request Feature Table of Contents About the Project Getting

darkArp 21 Oct 11, 2022
Zen-Userbot - Userbot gabut With Python

Zen-Userbot Disclaimer ⚠️ PERINGATAN UNTUK ANDA ⚠️ ️ Zen-Userbot

Wahyusaputra 6 Feb 12, 2022
⚡TIKTOK BOT - FAST OPTIMIZED ZEFOY SCRIPT

⚡ ZEFOY [ TikTok Zefoy Bot ] Get the script in: discord.gg/onlp !! Official shop: onlp.sellix.io Newest version v.9.0.0 Requirements pip install p

Tekky 186 Dec 31, 2022
Ross Virtual Assistant is a programme which can play Music, search Wikipedia, open Websites and much more.

Ross-Virtual-Assistant Ross Virtual Assistant is a programme which can play Music, search Wikipedia, open Websites and much more. Installation Downloa

Jehan Patel 4 Nov 08, 2021
SystemSix is an e-Ink "desk accessory" running on a Raspberry Pi. It is a bit of nostalgia that can function as a calendar, display the weather

SystemSix is an e-Ink "desk accessory" running on a Raspberry Pi. It is a bit of nostalgia that can function as a calendar, display the weather, the c

John Calhoun 372 Jan 02, 2023
A multipurpose Telegram Bot writen in Python for mirroring files

Deepak Clouds Mirror Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google D

MR.SHAGGY 0 Dec 19, 2021
A python wrapper for the mangadex API V5. Work in progress

mangadex A python wrapper for the mangadex API V5. It uses the requests library and all the aditional arguments can be viewed in the Official Mangadex

Eduardo Ceja 27 Dec 14, 2022
This is a Telegram video compress bot repo. By Binary Tech💫

This is a Telegram Video Compress Bot. Prouduct By Binary Tech 💫 Features Compresse videos and generate screenshots too.You can set custom video name

silentz lk 2 Jan 06, 2022
PyHoroscope - Observational Indian lunisolar calendar, horoscope and matching using the Swiss ephemeris

PyHoroscope Observational Indian lunisolar calendar, horoscope and matching usin

4 Jun 05, 2022
An unofficial python wrapper for the comdirect API for private consumers.

An unofficial python wrapper for the comdirect API for private consumers.

Alexander Knittel 18 Nov 30, 2022
Complete portable pipeline for masking of Aadhaar Number adhering to Govt. Privacy Guidelines.

Aadhaar Number Masking Pipeline Implementation of a complete pipeline that masks the Aadhaar Number in given images to adhere to Govt. of India's Priv

1 Nov 06, 2021
Home Assistant for Opendata CWB. Get the weather forecast of the city in Taiwan.

Home assistant support for Opendata CWB. The readme in Traditional Chinese. This integration is based on OpenWeatherMap (@csparpa, pyowm) to develop.

11 Sep 30, 2022
Discord Account Generator that will create Account with hCaptcha bypass. Using socks4 proxies

Account-Generator [!] This was made for education. Please use socks4 proxies for nice experiences. [!] Please install these modules - "pip3 install ht

RyanzSantos 10 Feb 23, 2022
Telegram Group Calls Streaming bot with some useful features, written in Python with Pyrogram and Py-Tgcalls. Supporting platforms like Youtube, Spotify, Resso, AppleMusic, Soundcloud and M3u8 Links.

Yukki Music Bot Yukki Music Bot is a Powerful Telegram Music+Video Bot written in Python using Pyrogram and Py-Tgcalls by which you can stream songs,

Team Yukki 996 Dec 28, 2022
A Discord bot written in Python to help with guild administration

forgotten-hydra A Discord bot written in Python to help with guild administration. External libraries Pycord-Development/pycord 1.7.3 djc/couchdb-pyth

1 May 14, 2022
A Telegram UserBot to Play Radio in Voice Chats. This is also the source code of the userbot which is being used for playing Radio in @AsmSafone Channel.

Telegram Radio Player UserBot A Telegram UserBot to Play Radio in Channel or Group Voice Chats. This is also the source code of the userbot which is b

SAF ONE 44 Nov 12, 2022
ACL 2022: CAKE: A Scalable Commonsense-Aware Framework For Multi-View Knowledge Graph Completion

CAKE ACL 2022: CAKE: A Scalable Commonsense-Aware Framework For Multi-View Knowledge Graph Completion Introduction This is the PyTorch implementation

Niu Guanglin 31 Dec 07, 2022
A Discord bot written in Python that can be used to control event management on a server.

Event Management Discord Bot A Discord bot written in Python that can be used to control event management on a Discord server. Made originally for GDS

Suvaditya Mukherjee 2 Dec 07, 2021
Example code for interacting with solana anchor programs - candymachine

candypy example code for interacting with solana anchor programs - candymachine THIS IS PURELY SAMPLE CODE TO FORK, MODIFY, UNDERSTAND AND INTERACT WI

dubbelosix 3 Sep 18, 2022