Skip to main content

A tool to sync artists and music databases from MusicBrainz to Notion.

Project description

🎶 MusicBrainz2Notion

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.


MusicBrainz2Notion Artist Database

📸 Screenshots

Click to expand screenshots

Artist Database - Tier List View

Artist Database

Release Database - Table View

Release Database

Tracks Database - Table View

Track Database

Contents

⬇️ Download

Find the latest release for your OS here.

🏃 Getting Started

  1. 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.

  2. 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.
  3. Run 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 only take only around 200 MB.
  4. Discover who is the mystery artist in the template and enjoy your new music database 🎶!

➕ Adding artists

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 the details 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 🎉!

⚙️ Configuration

Use the configuration to:

  • add a fanart.tv if you want 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:

  1. Configuration file
  2. Environment variables
  3. Command-line arguments

📝 Configuration file

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.

🌐 Environment variables

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.

🖥️ Command-Line Arguments

It’s recommended to use a virtual environment for installation (for example with uv). Then install the application with:

pip install musicbrainz2notion

Now you can run the app via the command line and 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.

⚠️ Current Limitations

  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

musicbrainz2notion-0.5.3.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

musicbrainz2notion-0.5.3-py3-none-any.whl (40.0 kB view details)

Uploaded Python 3

File details

Details for the file musicbrainz2notion-0.5.3.tar.gz.

File metadata

  • Download URL: musicbrainz2notion-0.5.3.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for musicbrainz2notion-0.5.3.tar.gz
Algorithm Hash digest
SHA256 007fcfde2357795f2f914f4299eb6e1bbd7ae7fc158665853f00451cc44a2eca
MD5 07ad468d999e8e0ce8ad361863b2f5ab
BLAKE2b-256 8b41b0159cfe6031ff9a1339799ebd7e72bc3c7d73bc39af299079be275fef9a

See more details on using hashes here.

File details

Details for the file musicbrainz2notion-0.5.3-py3-none-any.whl.

File metadata

File hashes

Hashes for musicbrainz2notion-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc365f9bb7aeab12da88c1f893620683b13a6a387a89b8588776536803ac97cc
MD5 7e9c89b63f207d13462200d0ea4456e0
BLAKE2b-256 727d76d0c16d17cd80c50a17306c93f5ad4ef0ac3fb540b73f91f0224f4242d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page