Harmony: Music Metadata Aggregator and MusicBrainz Importer

It’s because Apple Music has releases sometimes in countries exclusively. Unfortunately Harmony doesn’t show Apple Music availability. When I see a release on Harmony that isn’t worldwide and has Apple Music also, I do a second check on a-tisket (which can show Apple Music countries). I’ll just add in the annotation that it’s only in Japan on Apple Music or something similar depending on the situation.

No, Apple Music is not the exception.

Since there was no issue reported, I have done what I could based on this report. ISRC mapping is revisited, and another approach is taken which has no potential to finish on wrong recording in mentioned circumstances.

To quickly fix any isrc issues on a relase, you can use Scout.

1 Like

I’ve been working on a userscript to restore Beatport functionality to Harmony. It seems to be in a good working state right now.

Since Beatport servers have blocked Harmony, it works by navigating your browser to Beatport instead, scraping everything it can, then returns to Harmony and injects it into the UI and seeder. To cut down on page-loads it will also passively scrape any Beatport pages you browse through normally and save them for later (thanks chaban for the idea there).

3 Likes

I tried it real quick and works great on the Release Lookup page but it would be nice to see it work the same way on the Release Actions page too.

Also if you can manage to get this to work for Beatport, wouldn’t it be possible to add this functionality for other DSPs, some that aren’t even natively supported by Harmony. This would be most helpful for external links really, cause the current method is just search it manually and pasting to the add release page if it can find the release accurately and paste it automatically, it be great but it is risky cause it could lead to mismatches.

But since this user script already can find Beatport releases accurately then it is possible.

I haven’t played with the release actions at all yet, but that should be straight forward with the architecture I have now, so expect that in a future update.

and you are absolutely right that it would work for other suppliers as well. I am planning a separate script to enable lookup on all the native providers that don’t allow lookup (bandcamp, etc) using the same method as this beatport script. After that I will be looking into unsupported providers. Although probably not the ones that have active PRs in Harmony already.

2 Likes

Don’t know if this is a known issue. LUMEZX – Harmony
Release 16c6af05-bcb3-42b7-8f2b-a53c11589047 is already linked to this Spotify / iTunes / Qobuz release (add to lookup)
The problem is, that’s a release group MBID, not an release. I kept clicking add to lookup over and over wondering why it wasn’t working… oops. Then I clicked the MBID to see the problem.
Release group “LUMEZX” by LUMEZX - MusicBrainz
I won’t edit the release or RG so you can test with that.

1 Like
6 Likes

I noticed that Discogs/Bandcamp cd/vinyl formats get added to the digital releases, which is not by the current guidelines.

MBIDS should have a prefixsufix to identify them. Would help a lot of devs.

… Or MB should finally have a resolver API

Currently getting net::ERR_CERT_AUTHORITY_INVALID error

1 Like

Spotify launched music videos at the end of 2025, and some of those can be found here.

Is there any way Harmony can detect these using the Spotify API today?

It seems more complicated than Spotify presents it per FYI: Spotify releases with music videos - #5 by sammyrayy - so what we really need (still) is a way to disable iTunes UPC lookup redirection.

Some example MB releases:

  1. https://musicbrainz.org/release/e0a9a15d-142e-4fa8-8011-08d2a762f636 (each song has a separate audio track and music video track of different duration)
  2. https://musicbrainz.org/release/f871b717-d324-4173-94b5-00c4c2cfc714 (only some songs have a separate music video track)
  3. Release “Circles (F-1Trillion Album Livestream)” by Post Malone - MusicBrainz (the Spotify audio side is just the music video with the video feed turned off… clicking the “switch side” button is “gapless” and has no affect on the audio playback, unlike the above examples)

(#3 was originally a video on preexisting music platforms, and I wouldn’t separate the Spotify version given how that release was implemented at the technical level.)

2 Likes

New stuff in Falcon thx to @chaban

Repeat Harmony errors when “Auto send” is on:

If you missed that, there are also a couple of new Harmony options that make the entire process much more effective:

2 Likes

Does this fix the recent web server slow down issues or at least make it less of a pain to get through

Userscript can’t fix server issues. However, you can now go fully automatic which means those issues are no longer important - Falcon will reload the Harmony page if there are MB errors (5 times at most after waiting a bit), then it will import it into MB automatically in any case if there is something to send and reload the MB page at the end. Your only action is to import the release, and all other actions are done for you in the background.

Partial loads are marked as in this edit. Edit note shows what failed to load:

Harmony reported an error — existing label links could not be checked against MusicBrainz, so these actions are unfiltered; Beatport failed, so whatever it would have contributed is missing. These links may therefore be incomplete; Falcon is idempotent, so re-running over this release later will fill in the rest.

For those that failed, you can later retry Harmony if you want, or use other userscripts I made to fill in the missing data (which will not fail as they run from your machine): Scout for missing ISRCs and recording links, Platform Check for missing release links, Art Station for missing covers.

1 Like

To be clear, web server slow downs are made worse by people running more userscripts - especially the ones that make extra webservice calls for every page you visit.

6 Likes

That makes sense when adding releases with the addition of userscripts, it would be heavy on the web server.

But I have been getting server slow downs even on Picard. I’m the type to manually select the release for my media by clicking on the tagger, and I have had to refresh the tags 5 times just to get it to load and when it does, it takes a minute or 2 for a individual release. Now just like having many userscripts maybe having a lot of plugins and pulling metadata like track relationships, is the probable cause for why it’s struggling to pull.

I have heard that you if run a Musicbrainz server, it would be faster to tag on Picard, cause it’s pulling information locally but I’m not sure if it’s worth all the trouble or even if I have the resources for a server

While some userscripts do make extra requests to MB, when you take rate limits and the number of such users into consideration, it is a drop in the ocean and certainly cannot make the server slower to any meaningful amount.

Now just like having many userscripts maybe having a lot of plugins and pulling metadata like track relationships, is the probable cause for why it’s struggling to pull.

Still subject to rate limit, so server doesn’t care much; this is important for local experience. You should probably reduce the number of plugins if Picard is that unreliable.

Server slowness is, as far as I can see, 100% an AI/bot issue, which can’t be easily solved (like any DDOS).

1 Like

12 posts were split to a new topic: Pseudo releases vs recording aliases

Posting this here for more visibility.

One mistake I made a few times too many in the past was to treat the existing barcode and links on MusicBrainz as canonical. If I then open an Actions lookup for that release, Harmony will offer to import ISRCs from one of the provider url relationships. However, sometimes the track count between MB and the provider matches, but the track lengths or track order does not. This is especially common when a MB release that is meant to cover extended mixes (typically from Beatport) instead gets a Spotify release with the shorter mixes added in its url relationships. This also happens when track order/positioning does not match (sometimes due to user error, sometimes due to the publisher changing it later).

I vibe-coded a simple solution on my local Harmony: when a given track’s length differs by greater than 2s, or if track lengths are completely missing from either side, produce a warning on the Actions page. This stops me from submitting the wrong ISRCs.

I had considered adding more detail so that there would be some parity between Harmony and how ISRCHunt did this: show the tracklist from MB against the tracklist from the provider, and highlight significant naming differences or length differences.

But before I submit a PR for any of this, I thought I’d canvas other users to see if they would find that helpful or too much clutter. Any thoughts or opinions?

1 Like