I made a new tool for seeding MusicBrainz edits:
- github.com/derat/yambs - source code and precompiled command-line binaries
- yambs.erat.org - web version
The main focus is creating standalone recordings or releases using data from text files (e.g. CSV or TSV), although it also has basic support for pulling release data from Bandcamp (edit: and Qobuz, and Tidal).
I wrote it because I wanted to add a bunch of standalone recordings for a single artist, and I couldn’t find any way to do that without spending a lot of time switching between the keyboard and mouse to reenter the same data over and over in the Add Standalone Recording page. yambs is hopefully useful to people who (like me) can enter data faster in a text editor or spreadsheet than in a web form.
To give an example, if you want to add a bunch of recordings, you can specify a list of field names (e.g. “name,length”) and then provide CSV input with one recording name and length per row:
First Song,3:14 Second Song,6:56.02 Third Song,0:56 Fourth Song,2:35 ...
If there are fields that you want to set for all recordings, you can supply an additional list of
artist=7e84f845-ac16-41fe-9ff8-df12eb32af55 url0_url=https://www.example.org/ url0_type=255 edit_note=downloaded from https://www.example.org
yambs generates a webpage with links to the seeded edit pages and buttons for opening some or all of the pages in new tabs. (You may need to tell your browser to let the page open multiple popups the first time that you try this.)
The README.md file has more details, but hopefully the example values in the web version also give some hints about how everything works.
As part of this, I generated an enums.go file that lists link type IDs and various other hardcoded values (release group types, packaging, release statuses, etc.) that are used when seeding edits. I couldn’t find these values documented anywhere (and I suspect that my lists are still incomplete compared to what’s actually in the live database).
Please file issues if you have suggestions or encounter bugs, and don’t hesitate to let me know if you find stuff that doesn’t make sense.