A tool for syncing artist and music data from MusicBrainz to Notion databases. Simply add artist MusicBrainz IDs in a Notion database, and the app will automatically fetch and update their data, including albums and songs.
✨ MusicBrainz is an open and collaborative music encyclopedia that collects music metadata and makes it available to the public.
Click to expand screenshots
- ⬇️ Download
- 🏃 Getting Started
- 🖥 Running From Source
- ➕ Adding artists
- ⚙️ Configuration
⚠️ Current Limitations
Download the latest release here. These are pre-packaged versions of the command-line application for ease of use.
For Linux users or Macos users experiencing troubles executing the bundled application, please run from source.
-
Duplicate the Notion template to your Notion workspace.
- The template comes with several views of the databases, like special views for tier lists, but you can customize them at will!
💡 Keep note of the url of the duplicated page (
cmd/ctrl + L
to copy to clipboard), you will need it when using the app for the first time. -
Set up a Notion integration:
- Create the integration and obtain the Notion API key. Don't forget to grant the permissions to the integration for your newly duplicated page.
-
Run the app (you might need to confirm that you trust the app).
- You will be prompted for your notion API key and the url of the main page you duplicated.
- ❗ The first time you run the app, it will download a small part of MusicBrainz dataset so you need around free 10 GB in the app's folder. But don't worry, after processing the data, it will occupy approximately 200 MB.
-
Discover who is the mystery artist in the template and enjoy your new music database 🎶!
It might be simpler to run the code from source.
Clone the repository:
git clone https://github.com/Kajiih/MusicBrainz2Notion.git
cd musicbrainz2notion
Create a virtual environment and install dependencies for example with uv:
uv sync
source .venv/bin/activate # For macOS/Linux
.venv\Scripts\activate # For Windows
Then you can simply run the app with:
musicbrainz2notion
First, look up the MusicBrainz IDs (MBIDs) of the artists you want to sync to Notion.
💡 MBIDs are universal unique identifiers for artists, releases and songs. You can find the MBIDs in the URL of the artist's page:
https://musicbrainz.org/artist/<MBID>
or in thedetails
tab of the artist's page (e.g. here:5b11f4ce-a62d-471e-81fc-a69a8278c7da
).
Once you have the artist IDs, create new pages in the Artist database
and enter the MBIDs in the mbid
field.
💡 Make sure that the
To update
field is toggled on so that the app knows which artists to sync.
The next time you will run the app, all albums and songs of the artists, as well as all information about the artists themselves will be added to the database 🎉!
Use the configuration to:
- add a fanart.tv API key for better artist thumbnails
- update the notion API key or database ids
- change the release filters
- change the number of tags per page
- force the update of the database used to find canonical releases
Configuration is loaded from three sources, from lowest to highest priority:
- Configuration file
- Environment variables
- Command-line arguments
Edit the settings.toml
file located in the application folder to update your database IDs, API keys, and personalize synchronization settings.
💡 When you are prompted for the notion API key and the link of the database, the configuration file is automatically updated.
The configuration file is straightforward and includes comments to guide you through each setting.
Some settings can be overridden by environment variables.
These can also be read from the .env
file located in the application folder.
For more information on available environment variables, refer to the .env
template and use the --help
command with the command-line app.
If you run with the command line interface, you can pass parameters such as the Notion API key, database IDs, or your fanart.tv API key.
musicbrainz2notion --notion YOUR_NOTION_API_KEY
Use the --help
command to see all available options.
- Unverified App: The app in unverified and the user must confirm that they trust it. MacOs can be particularly annoying and require to trust every dependency one by one, which takes forever. As a workaround, you can run the app from source.
- Large Databases: The app isn’t fully optimized for very large databases yet, which may cause slower startup times as the number of pages increases.
- Notion API: The Notion API can sometimes be unreliable, and not every scenario is covered yet—occasional crashes may occur.
- Canonical release downloads: Sometimes, the canonical release database has to be updated, which can take some time and requires approximately 10 GB of free disk space during the update process.