Django-Music-Publisher (DMP) is open source software for managing music metadata:

  • works,
  • writers,
  • recordings,
  • artists,
  • labels,
  • releases and
  • libraries.

It uses Common Works Registration (CWR) for batch registration/licencing of musical works with Collective Management Organizations (CMOs) and Digital Service Providers (DSPs).

It processes royalty statements in various CSV formats.

Django-Music-Publisher (DMP) is based on Django web framework, hence the name.

Project Scope

DMP can be used out-of-the-box by most small original publishers, both for commercial (general) and production (library) music.

Each DMP installation supports a single publisher. It is not intended to be used by administrators or sub-publishers, nor by publishing companies with multiple entities (including US publishers affiliated with multiple PROs).

Features and limitations are described in detail below. Within this scope, neither user nor technical support is required for most publishers. For requirements outside this scope, including administrators and sub-publishers, as well as original publishers with multiple affiliations, professional support is absolutely required, and therefore beyond the scope of free software.


Music Metadata Management

The database can store detailed metadata for musical works and recordings, data about writers, recording and performing artists, releases (albums), labels and music libraries, as well as CWR exports, CWR acknowledgements and International Standard Musical Work Code (ISWC) assignments.

All entered data is validated for CWR and DDEX compatibility on field-, record- and transaction-level. Different CMOs have slightly different requirements. This can be configured in the settings.

Original Publishing Agreements

Basic original publishing agreement data can be entered, sufficient for registrations in societies that require society-assigned agreement numbers.

Global share splits for performance, mechanical and synchronisation rights between the publisher and controlled writers can be configured, in accordance with national regulations and customs.

Data Imports and Exports

Data about works can be imported from CSV files.

Data for selected works can be exported as JSON (complete) or CSV (basic).


Registrations can be exported as CWR 2.1 Revision 8, 2.2 Revision 2 and 3.0 (zipped) files.

Acknowledgement files in CWR format can be imported.

CWR preview features syntax highlighting with additional data on mouse-over, for both CWR files generated by DMP and imported acknowledgements.

Royalty Distribution

Incoming royalty statements in CSV format can be processed, resulting in CSV statements containing data for distribution between controlled interested parties. Statement processing is extremely fast.


Django-Music-Publisher uses a single manuscript share model, meaning that initial share splits between writers are same for performance, mechanical and synchronisation rights.

It does not manage data for other publishers. Non-controlled writers appear as unpublished in CWR files. Co-publishing deals are still possible, with each publisher registering their own shares. In this case, the other publisher appears as unknown in CWR files.

Share splits between the controlled original publisher and controlled writers are global.

Composite musical works, as well as recordings based on multiple musical works (e.g. medleys), are not supported.

When creating CWR, many fields are left with blank/zero values. When the fields are required in CWR, it uses reasonable defaults, e.g.:

  • Musical Work Distribution is set to Unclassified
  • Recorded indicator is set to Yes or Unknown, depending if a recording was entered
  • Work for Hire, Grand Rights Indicator, Reversionary Indicator, and First Recording Refusal Indicator are set to No

It does not have any kind of client access.

Future of Django-Music-Publisher

DMP 21.5 Mayday has many important features for music publishers within the project scope. And the scope will not change. While new features will be added, the described limitations are permanent.

Beyond Django-Music-Publisher

Some publishers require more features than DMP offers and/or technical and user support. In that case, there are two options.

One is to use commercial software. That Green Thing, available as affordable Software-as-a-Service, is a built on top of Django-Music-Publisher. There are other solutions, of course.

The other option is to hire a software developer, or a developement agency, to create a custom solution to exactly match your needs. Django-Music-Publisher may be used as a starting point. Creators of Django-Music-Publisher, That Green Thing and Python Music Metadata Libraries should be considered, see