Files
metadata-agregator/docs/research/graphbrainz/README.md
T
Alexander a1f6701bac feat: initial implementation of metadata aggregator
- gRPC service with MusicBrainz provider
- PostgreSQL schema with migrations
- Service layer with database-first caching
- Repository pattern for data access
- YAML configuration support
- Research documentation for 17 music metadata projects
2026-04-28 16:28:53 +02:00

1.7 KiB

GraphBrainz

Overview

A fully-featured GraphQL interface for the MusicBrainz API with an extensible schema that integrates Discogs, Spotify, Last.fm, fanart.tv, TheAudioDB, and more.

Key Features

  • API: GraphQL
  • Core: Full MusicBrainz API coverage
  • Extensions: Pluggable data sources via schema stitching
  • Caching: Configurable TTL
  • License: MIT

Source

Resource URL
Repository https://github.com/exogen/graphbrainz
NPM Package https://www.npmjs.com/package/graphbrainz
GraphiQL Demo Available when running server

Built-in Extensions

  • MusicBrainz (core)
  • Cover Art Archive - Album artwork
  • fanart.tv - High-quality artwork
  • MediaWiki - Wikipedia integration
  • TheAudioDB - Artist/release info

Additional Extensions (separate packages)

  • Last.fm - Scrobbling and recommendations
  • Discogs - Music database
  • Spotify - Streaming metadata

Query Example

query {
  lookup {
    artist(mbid: "5b11f4ce-a62d-471e-81fc-a69a8278c7da") {
      name
      releaseGroups(type: ALBUM) {
        edges {
          node {
            title
            firstReleaseDate
          }
        }
      }
      fanArt {
        thumbnails { url }
      }
      theAudioDB {
        biography
      }
    }
  }
}

Self-Hosting

# As standalone server
npm install -g graphbrainz
graphbrainz

# As Express middleware
npm install graphbrainz
const { middleware } = require('graphbrainz');
app.use('/graphql', middleware());

Notes

  • Extensible via custom extensions
  • Smart rate limiting for external APIs
  • Can run as server or library
  • GraphiQL interface for exploration