React
You're viewing Unhead v3 beta documentation. Install with unhead@beta
Schema

Music Recording

Schema.org MusicRecording

Type: defineMusicRecording(input?: MusicRecording)

Describes an individual music track or song.

Required properties

  • name string
    The name of the song/track.
  • url string
    The URL where the song can be accessed.
  • byArtist NodeRelations<Person | MusicGroup | string>
    The artist(s) who performed the song. Resolves to Person or MusicGroup.
  • inAlbum NodeRelation<MusicAlbum>
    Reference to the album this recording is part of.
  • duration string
    The duration of the track in ISO 8601 format (e.g., "PT3M45S" for 3 minutes 45 seconds).
  • isrcCode string
    International Standard Recording Code for the track.

Defaults

  • @type: MusicRecording
  • @id: ${canonicalHost}#music-recording

Examples

Minimal

defineMusicRecording({
  name: 'Bohemian Rhapsody',
  url: 'https://example.com/tracks/bohemian-rhapsody',
  byArtist: 'Queen',
})

Complete

defineMusicRecording({
  name: 'Bohemian Rhapsody',
  url: 'https://example.com/tracks/bohemian-rhapsody',
  audio: 'https://example.com/audio/bohemian-rhapsody.mp3',
  byArtist: {
    name: 'Queen',
  },
  inAlbum: {
    name: 'A Night at the Opera',
  },
  duration: 'PT5M55S', // 5 minutes 55 seconds
  isrcCode: 'GBUM71029604',
  datePublished: new Date(1975, 9, 31),
  genre: 'Progressive Rock',
  image: 'https://example.com/tracks/bohemian-rhapsody-cover.jpg',
})

Types

export interface MusicRecordingSimple extends Thing {
  name: string
  description?: string
  url?: string
  audio?: string
  byArtist?: NodeRelations<Person | MusicGroup | string>
  inAlbum?: NodeRelation<MusicAlbum>
  inPlaylist?: NodeRelations<string>
  duration?: string
  isrcCode?: string
  recordingOf?: NodeRelation<string>
  datePublished?: ResolvableDate
  genre?: string | string[]
  image?: NodeRelations<string | ImageObject>
  aggregateRating?: NodeRelation<AggregateRating>
}
Did this page help you?