XooCode(){

MusicRelease

MusicRelease is a MusicPlaylist subtype for a specific release of a music album or EP: the vinyl pressing, the CD edition, the digital release, the cassette reissue. Multiple MusicRelease entries can link to a single MusicAlbum via the releaseOf property. It adds 6 direct properties:

  • catalogNumber (Text, the label's catalog identifier)
  • creditedTo (Organization or Person, when the release credit differs from the album's byArtist)
  • duration (ISO 8601 duration)
  • musicReleaseFormat (MusicReleaseFormatType enum: 7 members)
  • recordLabel (Organization)
  • releaseOf (MusicAlbum)

Full example of schema.org/MusicRelease json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/MusicRelease
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicRelease",
  "name": "Null Pointer Exception - 180g vinyl pressing",
  "catalogNumber": "XCR-0042-V1",
  "musicReleaseFormat": "https://schema.org/VinylFormat",
  "recordLabel": { "@type": "Organization", "name": "Xoo Code Records" },
  "releaseOf": {
    "@type": "MusicAlbum",
    "name": "Null Pointer Exception",
    "byArtist": { "@type": "MusicGroup", "name": "Stack Trace" }
  },
  "creditedTo": { "@type": "MusicGroup", "name": "Stack Trace" },
  "datePublished": "2025-10-14",
  "duration": "PT41M22S",
  "numTracks": 9,
  "track": {
    "@type": "ItemList",
    "itemListElement": [
      { "@type": "ListItem", "position": 1, "item": { "@type": "MusicRecording", "name": "Null Check" } },
      { "@type": "ListItem", "position": 2, "item": { "@type": "MusicRecording", "name": "Off-by-one" } }
    ]
  }
}
</script>

MusicReleaseFormatType enum (7 members)

CDFormat, CassetteFormat, DVDFormat, DigitalAudioTapeFormat, DigitalFormat, LaserDiscFormat, VinylFormat. These come from the MusicBrainz vocabulary collaboration; for streaming-only releases (no physical), use DigitalFormat.

Minimal valid version

The smallest markup that still produces a valid MusicRelease entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/MusicRelease (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicRelease",
  "name": "Null Pointer Exception - vinyl",
  "musicReleaseFormat": "https://schema.org/VinylFormat",
  "releaseOf": { "@type": "MusicAlbum", "name": "Null Pointer Exception" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result (used by music catalogs, MusicBrainz consumers)
    Google docs

Common MusicRelease mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    musicReleaseFormat as free text

    Wrong
    "musicReleaseFormat": "Vinyl" or "Digital download"
    Right
    "musicReleaseFormat": "https://schema.org/VinylFormat" (enum member)

    MusicReleaseFormatType has exactly 7 enum members. Free text is silently dropped by music catalogs that key on the enum.

  2. 02

    Collapsing MusicAlbum and MusicRelease

    Wrong
    Writing the album data once and hoping it covers all physical/digital editions
    Right
    One MusicAlbum entity, multiple MusicRelease entities (one per format), linked via releaseOf

    Different releases have different catalogNumbers, formats, and dates. Collapsing them loses the distinctions collectors and retailers care about.

About the example data

The limited-edition 180g vinyl pressing of the fictional Stack Trace album "Null Pointer Exception", released through Xoo Code Records in 2025.

Comments

Loading comments...

Leave a comment