Sound Recordings

Deduplication by ISRC

ISRC is used as the dedup key. Multiple REC records with the same ISRC are merged into a single recording entry with multiple releases in releases[].

Records with no ISRC always create a new recording entry.


Recording Object

FieldTypeReqSource FieldDescription
titlestringOREC.RecordingTitleTitle of the recording
versionstringOREC.VersionTitleVersion or remix title
isrcstringOREC.ISRCInternational Standard Recording Code. Used as dedup key.
releasesarrayOCommercial releases of this recording

Release Object

FieldTypeReqSource FieldDescription
titlestringOREC.AlbumTitleAlbum or release title
labelstringOREC.RecordLabelRecord label name
releaseDatestringOREC.ReleaseDateFormat: YYYYMMDD
identifiersarrayORelease identifiers — see below

Release identifiers

sourceCWR Source FieldDescription
"ean"REC.EAN / REC.Ean / REC.EanCodeEAN barcode
"catalogNumber"REC.ReleaseCatalogNumberCatalogue number

Example

"recordings": [
  {
    "title": "BOHEMIAN RHAPSODY",
    "isrc": "GB-EMI-75-00001",
    "releases": [
      {
        "title": "A NIGHT AT THE OPERA",
        "label": "EMI RECORDS",
        "releaseDate": "19751031",
        "identifiers": [
          { "source": "catalogNumber", "value": "EMTC-101" },
          { "source": "ean", "value": "5099996897027" }
        ]
      },
      {
        "title": "GREATEST HITS",
        "label": "PARLOPHONE",
        "releaseDate": "19811026"
      }
    ]
  }
]

Relinquishment

The relinquishment object appears on a publisher participant when a PWR record signals that an original publisher (E) stops representing a writer for a specified scope. This is a CWR 2.2 Rev3 feature.


Object Fields

FieldTypeReqSource FieldDescription
effectiveFromstringMPWR.RelinquishmentEffectiveDateDate the relinquishment takes effect. Format: YYYYMMDD.
postTermCollectionUntilstringOPWR.PostTermCollectionDateIf provided, collection is still permitted until this date.
scope.rightsTypesstring[]MPWR.RelinquishmentPR/MR/SRRights relinquished: ["pr"], ["mr"], ["sr"], or combinations.
scope.territories.includestring[]MPWR.RelinquishmentTerritoryCodeTIS codes included (when RelinquishmentTerritoryIndicator = "I")
scope.territories.excludestring[]MPWR.RelinquishmentTerritoryCodeTIS codes excluded (when RelinquishmentTerritoryIndicator = "E")
notestringO(generated)Human-readable explanation

Trigger condition

Set when all three conditions are met on a PWR record:

  1. RelinquishmentIndicator = "Y"
  2. PublisherIPNumber resolves to a known publisher in publishersByIp

Example

{
  "role": "E",
  "name": "ORIGINAL PUBLISHER LTD",
  "ipi": "00000123456",
  "relinquishment": {
    "effectiveFrom": "20240101",
    "postTermCollectionUntil": "20241231",
    "scope": {
      "rightsTypes": ["pr", "mr"],
      "territories": {
        "include": ["840"],
        "exclude": []
      }
    },
    "note": "E publisher stops representing this writer for the specified scope."
  }
}