Skip to content

Latest commit

 

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Musixmatch Lyrics Plugin for Navidrome

Fetches lyrics from Musixmatch, the official lyrics provider for Spotify. The plugin always tries Musixmatch's free desktop API first, which does not require a user-provided token. If that does not work, the plugin can optionally fall back to website scraping. This plugin supports both synced and plain lyrics.

Installation

  1. Download navidrome-musixmatch-plugin.ndp from the latest release.
  2. Copy it to your Navidrome plugins folder (default: <navidrome-data-directory>/plugins/).
  3. Add navidrome-musixmatch-plugin to the lyrics priority list (e.g. using envs: ND_LYRICSPRIORITY=other-lyric-provider,navidrome-musixmatch-plugin)
  4. In Navidrome, go to Settings > Plugins > Navidrome Plugin and toggle it on.

No Musixmatch settings are required for the desktop API path.

Which release should I use?

You can download this plugin from GitHub or from the Forgejo mirror.

Most development happens on GitHub, but both repositories are kept available so you can use whichever platform you prefer and report issues there. GitHub releases are built with GitHub Actions. Forgejo releases are built by my own self-hosted Forgejo runner.

If you are unsure which one to choose, I recommend the Forgejo releases, as they are built on my own runner and are therefore fully under my control.

Optional Website Fallback

If the desktop API cannot find lyrics or is blocked, website scraping is supported as a fallback. This fallback requires a Musixmatch website token. If no token is configured, the fallback is skipped.

To enable website fallback, log in to Musixmatch and extract your auth token using a Chromium-based browser:

  1. Log in to Musixmatch.
  2. Open your browser's developer tools (F12) and go to the "Application" tab.
  3. Click on Cookies >> https://www.musixmatch.com.
  4. Find the cookie named musixmatchUserToken and click on it.
  5. In the bottom pane, copy the value of the cookie. Make sure "Show URL-decoded" is enabled.
  6. Paste that token into "Musixmatch User Token" in the plugin settings.
  7. If you encounter captchas, repeat the same steps for the captcha_id cookie and paste that into "Musixmatch Captcha ID".

It's recommended to set this plugin's priority to the lowest position, as Musixmatch can block unofficial clients and scrapers.

Musixmatch is known to aggressively block scrapers, so this plugin may break often. Please always download the latest version to check if your issue is already fixed.

This plugin shares analytics

To detect failed lookups, this plugin shares some analytics. Those analytics are opt-out, anonymous, and cannot be traced back to you. I only collect this information to improve the plugin. Analytics are stored on my self-hosted OpenObserve instance. The server is full-disk encrypted and only accessible to me. Analytics are not shared with any third party and only stored for 30 days.

I'd kindly ask you to keep analytics enabled, as it helps both me, in improving the plugin, and ultimately you, to get more lyrics. If you want to disable analytics, you can do so in the plugin settings.

Reporting Issues

Before opening an issue, grep your Navidrome logs and attach the matching lines:

grep navidrome-musixmatch-plugin /path/to/navidrome.log

Related Plugins

I can highly recommend to install my other lyrics plugins as well to get the best lyrics coverage as possible:

About

Scrape lyrics (plain & synced) from Musixmatch, the official lyrics provider for Spotify | No Auth required

Topics

Resources

Stars

31 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages