MusicBrainz Server update, 2023-03-20

We’re hopefully back to a normal schedule after the crazy relationship editor testing period! That means we have the usual small amount of bug fixes and improvements this time, including a couple further fixes for small issues of said relationship editor which were not found during beta testing. We also have a text version of the list of historical MusicBrainz events that could only be seen before as bars on our timeline – which hopefully will help remind us to actually update that with new events on a regular basis.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to CatQuest, chaban, mr_maxis, satanisch_opium, and yyoung for having reported bugs and suggested improvements. Thanks to salo.rock and an anonymous Albanian translator for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2023-03-21-hotfix.

Continue reading “MusicBrainz Server update, 2023-03-20”

Style Guideline Updates

If you’ve been lurking on our forums, you will know that our style guidelines have been receiving lots of attention lately! Both MusicBrainz docs and BookBrainz docs have been getting new additions and updates, and there’s still plenty being discussed. As I type these very words, there are greased-up editors in what’s known to us only as “the pit” – pitting their words, experience, and muscular bodies against each other in a bid for dominance over typographical punctuation.

Okay, okay, so there’s not really a pit, but here’s a rundown of some of the style discussions that are taking place, or have taken place, this year:

*proposals have been fully or partially implemented into the official style guidelines

For ongoing updates, keep an eye on the forums, and consider subscribing to the new forum tag ‘styleguide-proposal’. These community discussions do ultimately affect editing and your collections, so you may want to input as well. Slap on that grease, and get in The Pit! (I have to note, again, that there are no actual pits involved in any MeB discussions. A sad state of affairs.)

A big thank you to all the community members who shape our databases via their guideline input.

Schema change release: May 15, 2023

MusicBrainz is announcing a new schema change release for May 15, 2023. The actual schema (database) changes we’ve detailed below shouldn’t have much perceivable impact on mirror servers, especially if you only use the web service; most are to remove unused tables/columns or tweak how certain tables are materialized.

The only breaking change to a replicated table is dropping the cdtoc.degraded column (MBS-12573). It’s unused in our codebase, so will have no effect on the web service. However, if you’re querying the cdtoc table directly, you’ll want to make sure your SQL queries don’t expect this column to exist.

One minor change affects first-release-date data for release groups and recordings in the web service (MBS-12800), but only where cancelled releases exist. As of this writing, there are currently only 133 releases with the “cancelled” status.

One change we consider significant is that, as part of this release, we plan to enable replication with dbmirror2 (MBS-12107) by default. This should require no changes on the part of mirror server operators and should be completely invisible/seamless during the upgrade if all goes according to plan. We consider it significant because it’s rewriting a critical part of our replication system and changing the packet format used underneath.

Tools that operate on the current (let’s call them version 1) replication packets, like mbdata, will continue to work; MusicBrainz will continue to generate the old  v1 packets for the foreseeable future while we work to move external tools to the new, v2 packet format.

Read more: Schema change release: May 15, 2023

Without further introduction, here’s the list of tickets for the Spring 2023 schema change:

Schema changes

The following tickets change the database schema in some way.

  • MBS-4685: Allow removing own edit notes when there’s been no follow-up / MBS-11312: Allow original editors and admins to modify edit notes. In order to give editors and admins the option to modify or delete edit notes, this will add a new (non-replicated) table, edit_note_change, where the information about any changes made will be stored. No changes will be made to the structure of the existing edit_note table.
  • MBS-12573: Drop unused degraded column from cdtoc. This was a column that was used many years ago to store whether CD TOCs were based on a less accurate algorithm. For a long time, it’s always contained FALSE (since we dropped the less accurate data at some point). It’s also completely unused. We are just dropping the column entirely.
  • MBS-12704: Remove legacy “Watch artist” code. Over 10 years ago, we had code to follow artists and be notified of new releases and whatnot, but the whole system was never upgraded during the NGS migration. We have decided that if we re-implement this, it will be as part of ListenBrainz, not MusicBrainz. As such, we are dropping the relevant tables: editor_watch_artist, editor_watch_preferences, editor_watch_release_group_type, editor_watch_release_status.
  • MBS-12794: Don’t use spammer tags/ratings when calculating tag counts / rating averages. We do not delete spammer accounts (we just hide them) in order to train our code to identify other potential spammers. An unfortunate side effect of this is that any ratings and tags left by spammers are currently still taken into account when calculating aggregate ratings and tags for MusicBrainz entities. We’ll be making a change to our triggers that update these aggregates to ignore any ratings and tags by editors marked as spammers. This change affects master/standalone databases, but should have no impact on mirror servers, where these triggers do not exist. Some tag and rating values will be changed by this though.
    Edit (Mar. 23): The team has removed MBS-12794 from this release after deciding that the implementation needs more discussion.
  • MBS-12800: Exclude cancelled releases when calculating first recording / release group dates. We store data about releases which were announced, but then were cancelled before they were released. These are often stored with release dates, representing the date the release was meant to have been released. While this makes sense, it has the side effect that these dates affect the calculation of the first release date for any recordings linked to these releases, and the release groups they are in. Clearly, the recordings and release groups were not released on these dates, and we should use the date of their first actual release instead. This will change the triggers that update the release_first_release_date materialized table, which itself will affect the calculations of recording_first_release_date and the release date columns in release_group_meta. These triggers run on mirrors as well.

The remaining tickets below do not make any changes to the database schema.

Replication system changes

  • MBS-12107: Replication with dbmirror2. See the introduction above and the linked ticket for more information. The prerequisite database changes required for this were already applied as part of the Spring 2022 schema change, so enabling the v2 system only requires code changes.

Upgrade script changes

  • MBS-12370: Rename schema change upgrade script suffixes to clearly indicate which nodes they run on. This is an internal-only change which should have no impact on users.

We’ll post upgrade instructions for standalone/mirror servers on the day of the release. If you have any questions, feel free to comment below or on the relevant JIRA tickets.

MusicBrainz Server update, 2023-02-28

After about three years of development and almost six months of beta testing, here is the new implementation in React of all the relationship editors, including the release relationship editor. During the beta period, a hundred more smaller changes have accumulated; mostly bugfixes, but also some URL handling improvements and a fair number of other pages converted to React.

This is a major step forward in development as it makes the project more open to JavaScript contributors and allows for implementing more refinements.

From an editor point of view, the relationship editing dialog slightly changed visually, but overall the page offers the same features, fixes a large amount of bugs, and has some additional improvements:

  • Better handling of very big releases by not loading all tracks at once
  • Added ability to edit batch-created works before they’re submitted
  • “+” icons to quickly add additional relationships of the same type are now also available on the release relationship editor
  • Now remembering which entity type was selected last in the relationship dialog
  • New type-to-search functionality for the relationship type selector
  • Better internationalization as the layout ordering of fields is based on their dependencies rather than on the English grammar of link phrases.
  • Better seeding of data: easier to script, more reliable, and more available fields
  • Recording-work relationships can now be reordered straight from the release relationship editor
  • Reordering relationships can now also be done by entering the order number rather than using up and down arrows
  • A preview of the relationship (and any changes) is now shown in the add/edit relationship popup

During the beta period, another hundred tickets or so relating to the new editors were reported and addressed. There still are a few tickets reported during the beta that have not yet been resolved, but their drawbacks are outweighed by the benefits of this server update. They are still tracked and will be addressed later on.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to jesus2099, julian45, and Maxr1998 for having contributed some code. Thanks to kellnerd for working with us to make sure his data seeding scripts worked in the new editors and through that helping us improve script and seeding support. Special thanks to chaban for his thorough dedication at identifying/reporting/detailing issues during these months. Thanks to Admiy, CatQuest, cherryblossom000, chiark, Cyberskull, drsaunde, Eincrou, Griomo, HibiscusKazeneko, johnnyjd, mcboing, mfmeulenbelt, Midness, MXS, otringal, outsidecontext,,, UltimateRiff, vzell, withered.silence, yindesu and zos18 for having reported bugs and suggested improvements. Thanks to 3Johnny, Blu777, dongrimaldo42, homersimpsons, perea and salo.rock for updating the translations. And thanks to all the many others who tested the beta version!

Edit: The changes for MBS-10614 accidentally allowed editors without a confirmed email to vote for a while – this has now been hotfixed.

The git tag is v-2023-03-03-hotfixes.

Continue reading “MusicBrainz Server update, 2023-02-28”

ListenBrainz App is now available on the PlayStore!

We have released the ListenBrainz app for Android! Track your music listening habits and connect with other music lovers around the world, with this exciting new app.

A image of an Android phone with some ListenBrainz style bubbles around it

Get the app on the Google PlayStore.

The integration of BrainzPlayer, a powerful music player that can handle songs stored on a user’s device, is one of the app’s most impressive features. Listen to all of your favourite music in one place, without having to switch between different apps or services.

But the app’s functionality doesn’t stop there. ListenBrainz integrates with the Spotify Android SDK, allowing you to stream your favorite songs directly from the popular music streaming service. This provides a seamless listening experience, no matter where music is stored.

Year in Music is another exciting feature. Get a detailed breakdown of your music listening habits over the course of a year. Track what songs have been played the most, what artists have been listened to the most, and even what days and times you and your friends listen to music. Gain insight into your listening habits, and discover new music picked out just for you.

The ListenBrainz app is still new, and we are constantly working to improve it. We are eager to hear feedback from you about what features you would like to see added, what improvements could be made, and any issues you may encounter while using the app. You can send your feedback to us via our forums, IRC, Twitter, or email.

MusicBrainz Server hotfix, 2023-01-10

A spam technique has been discovered that consisted in creating an account with a malicious URL in the username and the email of the intended victim, so that the victim would receive a verification email with the malicious URL inside it. It was most often combined with control characters to make the malicious URL even more visible.

Thanks to Devin McGovern from the Cyber Security Operations Department at Hyatt who responsibly disclosed this issue to the team.

To deal with the issue:

  1. Creating new such accounts has been blocked; See MBS-12827.
  2. Existing such accounts, around 40,000, have been removed (since new verification emails could still be requested); See MBBE-68.

It doesn’t affect mirrors so there is no update for MusicBrainz Docker.

The git tag is v-2023-01-10-hotfixes.

Continue reading “MusicBrainz Server hotfix, 2023-01-10”

Picard 2.9 alpha 1 available for testing

Today we have released an alpha version for the upcoming Picard 2.9. The main change coming with this release is limiting Picard to a single instance by default and the ability to run commands inside this running Picard instance from the command line. This work was done by skelly37 as part of last year’s Google Summer of Code.

Keep in mind that we consider this an alpha release and it might contain bugs. As the single-instance mode by default is a significant change on how Picard is being run we want to gather some feedback on the new functionality before we do a final 2.9 release.

Continue reading “Picard 2.9 alpha 1 available for testing”

Unexpected Picard Setups

This article is showcasing some of the more unusual ways MusicBrainz Picard can be run. Some are useful, some are more technically interesting solutions.

The description in MusicBrainz Picard’s README file says:

MusicBrainz Picard is a cross-platform (Linux, macOS, Windows) audio tagging application.

So yes, Linux, macOS and Windows are our officially supported platforms and the main targets for running Picard. If you are using Picard you likely do this on a laptop or desktop computer running one of these three operating systems. We already offer plenty of options to install and run Picard, including our official downloads for Windows and macOS, Picard in the Microsoft Store for Windows 10 and 11 and the popular Linux packages Flatpak and Snap.

But as Picard is free software you can get it running essentially anywhere were Python and PyQt5 are available. Let’s start this year with showcasing some of the more unusual ways Picard can be run. Some are useful, some are more technically interesting solutions.

Continue reading “Unexpected Picard Setups”

Picard 2.8.5 released

Picard 2.8.5 is a maintenance release for Picard 2.8, fixing two regressions found in the previous release.

The latest release is available for download on the Picard download page.

Thanks a lot to everyone who gave feedback and reported issues.

What’s new?


  • [PICARD-2590] – Relative paths for cover art file names no longer work
  • [PICARD-2593] – Toolbar icon text disappears when saving options
  • [PICARD-2596] – “Show icons in menus” option is applied without saving options

Get in touch

Please use the MetaBrainz community forums and the ticket system to give feedback, suggest new features or report bugs.

End-of-life for external access to MusicBrainz search server

For MusicBrainz mirrors, MusicBrainz server development, and custom applications, there used to be a direct access to which was actually inherited from the previous search infrastructure until 2018.

Keeping it available in the current infrastructure uses a compatibility layer which has been unintentionally broken last year. This issue has been reported only once. The alternative and much more sensible solution which is to install a local search server has improved in reliability and simplicity in the meantime. Polling the community shown that only one person would be interested which isn’t enough to justify the maintenance overhead for this replaceable service.

Therefore it has been decided to close this access for good.

Thanks to everyone who made this transitioning service to work and handle about 40k requests a day on average!