Git Product home page Git Product logo

museexmatch's Introduction

Museexmatch - Musixmatch for MusicBee

It's just a lyrics provider.

Disclaimer

This plugin is made and published exclusively for educational purposes. The plugin uses the private Musixmatch API and may stop working whenever the legal owners decide to take action. I take no responsibility, if someone asks then it wasn't me.

Features

Using private Musixmatch API to get lyrics. Synced lyrics are supported. Pulling metadata from the file itself for MusicBee 3.6.8922+ which is not the main release at the moment.

Installation

Get a release and extract all .dll files into %APPDATA%\MusicBee\Plugins\ directory. For portable version use Plugins directory.

Activation

Preferences -> Plugins -> Enable Museexmatch.
Preferences -> Tags (2) -> Lyrics -> Musixmatch via Museexmatch.

Configuration

Create museexmatch.conf in the %APPDATA%\MusicBee\ directory (AppData for portable) and use this template:

{
    "allowedDistance": 5,
    "delimiters": ["&", ";", ","],
    "verifyAlbum": false,
    "addLyricsSource": false,
    "trimTitle": false,
    "preferSyncedLyrics": false,
    "onlySyncedLyrics": false
}

museexmatch.conf includes several options. You are allowed to use only ones you need, just omit the line and don't forget about commas in JSON.

  1. Configurable title distance for minor differences. Defaults to 5. This means that a present N-character difference in search results won't affect the filtering and be considered a hit.
  2. Configurable artist delimiters ("A & B, C" => "A"). Defaults to none. Useful when you have several artists for the track but Musixmatch includes only the main one.
  3. Configurable album verification. Plugin will check if the album is the same. Names must be identical.
  4. Configurable lyrics source marker. Plugin will append "Source: Musixmatch via Museexmatch" to the lyrics' beginning if enabled.
  5. Configurable title trim. This option will remove all content in brackets from the title. By default MusicBee removes only features in the round brackets, this option will remove all content in [], {}, <> and ().
  6. Configurable synced lyrics preference. Plugin will return synced lyrics in LRC format. Advanced LRC (split by words) is not supported by MusicBee.
  7. Configurable synced lyrics preference (forced). Plugin will only return synced lyrics in LRC format and pass the request to another plugin if not found. This allows to choose synced Musixmatch first and text Genius second, for example. Restart MusicBee to apply changes.

Logic

  1. Plugin gets either the "artist" field or the first artist in the extended list if you've edited it manually alongside with the "title".
  2. Plugin searches for results just like they are. Results (artist + title) are allowed to differ no more than allowedDistance characters.
  3. Plugin checks for result artist aliases.
  4. Plugin strips down the artist using the delimiters (if provided), searches and handles aliases.

Log

You can find log at %APPDATA%\MusicBee\museexmatch.log (AppData\museexmatch.log for portable).

Shoutouts

https://github.com/toptensoftware/JsonKit

https://nlog-project.org/

https://github.com/mono/taglib-sharp

museexmatch's People

Contributors

slonopot avatar

Stargazers

 avatar  avatar  avatar Ahmed Alamin avatar  avatar  avatar  avatar  avatar Thomas B. Verderesi avatar  avatar  avatar Cannibull avatar Ollie avatar  avatar  avatar Alireza Gharib avatar  avatar fawn avatar  avatar Eggroley avatar Daniel avatar  avatar  avatar

Watchers

 avatar

museexmatch's Issues

New MusicBee plugin for LRCLIB's API search?

Hi slonopot, any chance of creating a lyric searcher for LRCLIB.net? It has an open-source public API with details here: https://lrclib.net/docs.

A chap at the AIMP player forum recently wrote and posted one for that player's lyrics searcher script structure and man it is FAST and gets an amazing amount of hits. He found it had both static and synchronized DB abilities so wrote separate ones for both. I'll bet you could combine them in one and make formats option-selectable like you did with Museexmatch.

I know you have the chops to handle this after Museexmatch and Beenius, could you please consider giving it a try? Thanks!!

Plugin crashes when Beenius enabled

Windows 10 Home, latest version at 11 MAR 2024
MusicBee Portabe 3.5.8698 (latest for now)

  1. Install Beenius into MusicBee, enable it
  2. Install Museexmatch into MusicBee, enable it
  3. Launch MusicBee
  4. See an error message (not always, with about 70% chance)
    crashhh
  5. In MusicBee > Preferences > Plugins we see that Museexmatch was automatically turned off (and Beenius is still running OK)
    image

Assumption 1:

This both plugins are using common files, which all are stored in ../MusicBee/Plugins/:

  • NLog.dll
  • Topten.JsonKit.dll

Maybe the problem is that they try to access these files at the same time, but Beenius does it first? But how can we explain cases when Museexmatch starts normally without errors?


Assumption 2:

Maybe Beenius isn't involved at all and Museexmatch crashes on its own?

Plug In Not Working

Hiya, When I try to add your plugin I get an error saying Exception has been Thrown By the Target of an invocation

Plugin no longer finding lyrics

As of today, noticed your plugin is no longer drawing lyrics from Musixmatch even though they are there. An example (track title/artist) is:

Can You Believe It - ULTRA SUNN

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.