PHPackages                             detain/phlix-plugin-musicbrainz - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. detain/phlix-plugin-musicbrainz

ActivePhlix-plugin[Image &amp; Media](/categories/media)

detain/phlix-plugin-musicbrainz
===============================

MusicBrainz metadata provider for Phlix — artist/album/track metadata, album art, and AcoustID integration.

v0.2.0(1mo ago)03MITPHPPHP &gt;=8.3CI passing

Since Jul 9Pushed 3w agoCompare

[ Source](https://github.com/detain/phlix-plugin-musicbrainz)[ Packagist](https://packagist.org/packages/detain/phlix-plugin-musicbrainz)[ Docs](https://github.com/detain/phlix-plugin-musicbrainz)[ RSS](/packages/detain-phlix-plugin-musicbrainz/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (6)Versions (3)Used By (0)

phlix-plugin-musicbrainz
========================

[](#phlix-plugin-musicbrainz)

[![tests](https://github.com/detain/phlix-plugin-musicbrainz/actions/workflows/test.yml/badge.svg)](https://github.com/detain/phlix-plugin-musicbrainz/actions/workflows/test.yml)

> MusicBrainz metadata provider for [Phlix](https://github.com/detain/phlix-server) — enriches your music library with artist/album/track metadata and album art from the Cover Art Archive.

Overview
--------

[](#overview)

Connects a Phlix server to [MusicBrainz](https://musicbrainz.org/) to enrich music items with comprehensive metadata:

- **Artist metadata** — names, aliases, country,begin/end dates, genres, tags
- **Album metadata** — release date, label, catalog number, barcode, genres
- **Track metadata** — track number, disc number, duration, ISRC codes
- **Album artwork** — fetched from the Cover Art Archive API

It subscribes to `phlix.library.item.added` and enqueues each item in `src/EnrichmentQueue.php`, so enrichment runs deferred and throttled instead of inline during a library scan.

Install
-------

[](#install)

From the Phlix admin **Plugins** section, paste this repo's URL:

```
https://github.com/detain/phlix-plugin-musicbrainz

```

…or from the CLI:

```
php bin/phlix plugin:install https://github.com/detain/phlix-plugin-musicbrainz
```

Settings
--------

[](#settings)

All settings are optional — MusicBrainz is an open service, so no API key is required.

SettingTypeDefaultDescription`enabled`boolean`false`Master on/off for MusicBrainz enrichment. Optional; default off. No API key needed — MusicBrainz is an open service.`user_agent`string`PhlixMusicBrainzPlugin/0.1.0 (…)`Identifies Phlix to MusicBrainz (their policy REQUIRES a descriptive User-Agent with contact info). Optional — the default is fine; customise if you run a fork. See [MusicBrainz API etiquette](https://musicbrainz.org/doc/MusicBrainz_API/Rate_Limiting).`rate_limit_delay`integer`1100`Minimum delay between MusicBrainz requests (ms). Optional; default 1100 (MusicBrainz asks for no more than ~1 request/second).`auto_enrich`boolean`true`Automatically enrich music items as they are scanned. Optional; default on.`fetch_album_art`boolean`true`Pull cover art via the Cover Art Archive. Optional; default on.`search_depth`string`normal`How hard to search for matches: fast, normal or deep. Optional; default normal.Development
-----------

[](#development)

```
composer install
vendor/bin/phpunit
vendor/bin/phpstan analyse -c phpstan.neon
vendor/bin/phpcs src --standard=PSR12
```

The entry class is `Phlix\Plugin\MusicBrainz\MusicBrainzPlugin` (implements `Phlix\Shared\Plugin\LifecycleInterface` and `Phlix\Shared\Plugin\ConfigurableInterface`). It runs inside a Phlix server host, which provides the library services at runtime.

API Rate Limiting
-----------------

[](#api-rate-limiting)

MusicBrainz requires **no more than 1 request per second**. This plugin enforces a configurable delay (default 1100ms) between all API calls, and `src/EnrichmentQueue.php` releases at most one queued item per interval (floor of 1s) so the budget holds across a whole scan. Please configure a valid `user_agent` with contact information so MusicBrainz can reach you if there are issues.

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance94

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1036e0717211b8030b83cbe729e8ba6ba442fdbd5285fb97a39d7dcfe339342?d=identicon)[detain](/maintainers/detain)

---

Top Contributors

[![detain](https://avatars.githubusercontent.com/u/1364504?v=4)](https://github.com/detain "detain (32 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")

---

Tags

acoustidalbumsartistsaudiocomposer-packagediscographyembyjellyfinlibrarymedia-servermetadatametadata-providermusicmusicbrainzphlixphlix-pluginphpplextracksmetadataaudiomusicmusicbrainztracksalbumsArtistsacoustidmetadata-providerphlixphlix-plugindiscography

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/detain-phlix-plugin-musicbrainz/health.svg)

```
[![Health](https://phpackages.com/badges/detain-phlix-plugin-musicbrainz/health.svg)](https://phpackages.com/packages/detain-phlix-plugin-musicbrainz)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k87.4M2.2k](/packages/symfony-symfony)[laravel/framework

The Laravel Framework.

34.9k556.2M21.6k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[ecotone/ecotone

Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.

568591.1k63](/packages/ecotone-ecotone)[wikimedia/parsoid

Parsoid, a bidirectional parser between wikitext and HTML5

200569.1k3](/packages/wikimedia-parsoid)[kimai/kimai

Kimai - Time Tracking

4.8k9.4k1](/packages/kimai-kimai)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
