Schema
Music Recording Schema
On this page
Schema.org MusicRecording
Type: defineMusicRecording(input?: MusicRecording)
Describes an individual music track or song.
Useful Links
Required properties
- name
string
The name of the song/track. - url
string
The URL where the song can be accessed.
Recommended Properties
- 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>
}
Related Schemas
- MusicAlbum - Album containing track
- MusicGroup - Performing artist
- Person - Individual artist
Did this page help you?
Music Playlist Schema
Use defineMusicPlaylist() to add MusicPlaylist structured data. Display playlist info with track count, creator, and song list in search.
Organization Schema
Use defineOrganization() to add Organization structured data. Display your company logo, social profiles, and contact info in Google Knowledge Panel.