Content markup properties of artists, albums, and songs
Stay organized with collections
Save and categorize content based on your preferences.
This section provides the details of the content markup properties for the MusicGroup
, MusicAlbum
, and MusicRecording
entity types.
Specification table
MusicGroup
Property |
Expected Type |
Description |
@context |
Text |
Required - Always set to ["http://schema.googleapis.com", {"@language": "xx"}] .
- Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
|
@type |
Text |
Required - Always set to MusicGroup for artists and groups. |
@id |
URL |
Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
- Globally unique across your catalog
- Static; The ID should be stable and not change over time (even if the url property of the show changes). It will be treated as an opaque string and does not have to be a working link.
- In the form of Unified Resource Identifier (URI)
- The domain used for the @id value must be owned by your organization.
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id . See the Identifier section for more details. |
url |
URL |
Required - The content's canonical URL, which Google uses to match the content in your feed to the content in Google's databases.
url must meet the following requirements:url must be globally uniqueurl must contain a working canonical URL that Google can crawl.url needs to point to a content description page that is not blocked by a paywall. For playback's deep link, see the target object's urlTemplate property instead. |
name |
Text |
Required - The name of the artist or group. |
potentialAction |
ListenAction |
Required - An Action markup object that provides the details of the action. See the Action markup properties for details. |
subjectOf |
MusicPlaylist |
Required for Entity-seeded Actions - Details for the entity-seeded action. |
subjectOf.@type |
Text |
Required for Entity-seeded Actions - Always set to MusicPlaylist for this property. |
subjectOf.@id |
URL |
Required for Entity-seeded Actions - The identifier for the entity-seeded action. See the requirements for @id above. It must be distinct from the @id for the artist/group. |
subjectOf.url |
URL |
Required for Entity-seeded Actions - The canonical URL for the entity-seeded action. See the requirements for url above. You can leave this out if it's the same as the url for the artist/group. |
subjectOf.potentialAction |
ListenAction |
Required for Entity-seeded Actions - An Action markup object that provides the details of the action. See the Action markup properties for details. |
image |
ImageObject |
Image which represents the MusicGroup. See Image markup properties. |
sameAs |
URL |
A URL to a reference web page that can identify the artist; for example, the Wikipedia page of the artist. This must be distinct from the url property. |
description |
Text |
A brief biography of the artist. 300-character limit. |
isFamilyFriendly |
Boolean |
Indicates whether this content is family friendly (that is, the content is suitable for all members of a family, including children). Google products may use isFamilyFriendly when determining a song to play. |
popularityScore |
PopularityScoreSpecification |
Highly Recommended Why? A score that Google uses, plus other signals, to determine which media to play for users. This score represents the popularity of the content in relation to other content in your catalog; therefore, the score's scale needs to be consistent across your feeds, among all the entities in your catalog. By default, an entity's popularity score is set to 0. |
popularityScore.@type |
Text |
Always set to PopularityScoreSpecification . |
popularityScore.value |
Number |
A non-negative numeric value that indicates the popularity of the entity; a higher score means higher popularity. |
popularityScore.eligibleRegion |
Country |
Region(s) where this popularity score is applicable. If the popularity score is globally applicable, set to EARTH . By default, this property is set to EARTH . Note: Locale-specific popularity takes precedence over global (EARTH) popularity |
MusicAlbum
Property |
Expected Type |
Description |
@context |
Text |
Required - Always set to ["http://schema.googleapis.com", {"@language": "xx"}] .
- Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
|
@type |
Text |
Required - Always set to MusicAlbum for albums. |
@id |
URL |
Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
- Globally unique across your catalog
- Static; The ID should be stable and not change over time (even if the url property of the show changes). It will be treated as an opaque string and does not have to be a working link.
- In the form of Unified Resource Identifier (URI)
- The domain used for the @id value must be owned by your organization.
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id . See the Identifier section for more details. |
url |
URL |
Required - The content's canonical URL, which Google uses to match the content in your feed to the content in Google's databases.
url must meet the following requirements:url must be globally uniqueurl must contain a working canonical URL that Google can crawl.url needs to point to a content description page that is not blocked by a paywall. For playback's deep link, see the target object's urlTemplate property instead. |
name |
Text |
Required - The name of the album. |
byArtist |
MusicGroup |
Required - The artist or group that recorded this album. At a minimum, you must specify the unique @id you use for that artist and the name of the artist. If the album has multiple associated artists, you may provide an array of values in byArtist. |
byArtist.@type |
Text |
Required - Always set to MusicGroup for this property. |
byArtist.@id |
URL |
Required - The identifier for the artist of the album. See the requirements for @id above. It must match the @id you use for the artist/group elsewhere in your feed. |
byArtist.name |
Text |
Required - The name of the artist/group. |
potentialAction |
ListenAction |
Required - An Action markup object that provides the details of the action. See the Action markup properties for details. |
subjectOf |
MusicPlaylist |
Required for Entity-seeded Actions - Details for the entity-seeded action. |
subjectOf.@type |
Text |
Required for Entity-seeded Actions - Always set to MusicPlaylist for this property. |
subjectOf.@id |
URL |
Required for Entity-seeded Actions - The identifier for the entity-seeded action. See the requirements for @id above. It must be distinct from the @id for the album. |
subjectOf.url |
URL |
Required for Entity-seeded Actions - The canonical URL for the entity-seeded action. See the requirements for url above. You can leave this out if it's the same as the url for the album. |
subjectOf.potentialAction |
ListenAction |
Required for Entity-seeded Actions - An Action markup object that provides the details of the action. See the Action markup properties for details. |
image |
ImageObject |
Image which represents the MusicAlbum. See Image markup properties. |
sameAs |
URL |
A URL to a reference web page that can identify the album; for example, the Wikipedia page of the album. This must be distinct from the url property. |
numTracks |
Integer |
The number of songs or tracks on this album. |
timeRequired |
Text |
The length of the album, in ISO 8601 format. |
description |
Text |
A brief description of the album. 300-character limit. |
isFamilyFriendly |
Boolean |
Indicates whether this content is family friendly (that is, the content is suitable for all members of a family, including children). Google products may use isFamilyFriendly when determining a song to play. |
popularityScore |
PopularityScoreSpecification |
A score that Google uses, plus other signals, to determine which media to play for users. This score represents the popularity of the content in relation to other content in your catalog; therefore, the score's scale needs to be consistent across your feeds, among all the entities in your catalog. By default, an entity's popularity score is set to 0. |
popularityScore.@type |
Text |
Always set to PopularityScoreSpecification . |
popularityScore.value |
Number |
A non-negative numeric value that indicates the popularity of the entity; a higher score means higher popularity. |
popularityScore.eligibleRegion |
Country |
Region(s) where this popularity score is applicable. If the popularity score is globally applicable, set to EARTH . By default, this property is set to EARTH . |
MusicRecording
Property |
Expected Type |
Description |
@context |
Text |
Required - Always set to ["http://schema.googleapis.com", {"@language": "xx"}] .
- Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
|
@type |
Text |
Required - Always set to MusicRecording for songs/tracks. |
@id |
URL |
Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
- Globally unique across your catalog
- Static; The ID should be stable and not change over time (even if the url property of the show changes). It will be treated as an opaque string and does not have to be a working link.
- In the form of Unified Resource Identifier (URI)
- The domain used for the @id value must be owned by your organization.
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id . See the Identifier section for more details. |
url |
URL |
Required - The content's canonical URL, which Google uses to match the content in your feed to the content in Google's databases.
url must meet the following requirements:url must be globally uniqueurl must contain a working canonical URL that Google can crawl.url needs to point to a content description page that is not blocked by a paywall. For playback's deep link, see the target object's urlTemplate property instead. |
name |
Text |
Required - The name of the song. |
byArtist |
MusicGroup |
Required - The artist or group that recorded this song. At a minimum, you must specify the unique @id you use for that artist and the name of the artist. If the song has multiple associated artists, you may provide an array of values in byArtist. |
byArtist.@type |
Text |
Required - Always set to MusicGroup for this property. |
byArtist.@id |
URL |
Required - The identifier for the artist of the song. See the requirements for @id above. It must match the @id you use for the artist/group elsewhere in your feed. |
byArtist.name |
Text |
Required - The name of the artist/group. |
potentialAction |
ListenAction |
Required - An Action markup object that provides the details of the action. See the Action markup properties for details. |
subjectOf |
MusicPlaylist |
Required for Entity-seeded Actions - Details for the entity-seeded action |
subjectOf.@type |
Text |
Required for Entity-seeded Actions - Always set to MusicPlaylist for this property. |
subjectOf.@id |
URL |
Required for Entity-seeded Actions - The identifier for the entity-seeded action. See the requirements for @id above. It must be distinct from the @id for the song. |
subjectOf.url |
URL |
Required for Entity-seeded Actions - The canonical URL for the entity-seeded action. See the requirements for url above. You can leave this out if its the same as the url for the song. |
subjectOf.potentialAction |
ListenAction |
Required for Entity-seeded Actions - An Action markup object that provides the details of the action. See the Action markup properties for details. |
image |
ImageObject |
Image which represents the MusicRecording. See Image markup properties. |
sameAs |
URL |
A URL to a reference web page that can identify the album; for example, the Wikipedia page of the album. This must be distinct from the url property. |
inAlbum |
MusicAlbum |
The album on which the track appears, if any. |
inAlbum.@type |
Text |
Always set to MusicAlbum for this property. |
inAlbum.@id |
URL |
The identifier for the album. See the requirements for @id above. It must match the @id you use for the album elsewhere in your feed. |
inAlbum.name |
Text |
The name of the album. |
duration |
Text |
The length of the song, in ISO 8601 format. |
description |
Text |
A brief description of the song. 300-character limit. |
isFamilyFriendly |
Boolean |
Indicates whether this content is family friendly (that is, the content is suitable for all members of a family, including children). Google products may use isFamilyFriendly when determining a song to play. |
popularityScore |
PopularityScoreSpecification |
A score that Google uses, plus other signals, to determine which media to play for users. This score represents the popularity of the content in relation to other content in your catalog; therefore, the score's scale needs to be consistent across your feeds, among all the entities in your catalog. By default, an entity's popularity score is set to 0. |
popularityScore.@type |
Text |
Always set to PopularityScoreSpecification . |
popularityScore.value |
Number |
A non-negative numeric value that indicates the popularity of the entity; a higher score means higher popularity. |
popularityScore.eligibleRegion |
Country |
Region(s) where this popularity score is applicable. If the popularity score is globally applicable, set to EARTH . By default, this property is set to EARTH . |
Examples
MusicGroup
{
"@context":["http://schema.googleapis.com/", {"@language": "en"}],
"@type":"MusicGroup",
"@id":"http://www.example.com/artist/my_favorite_artist/",
"url":"http://www.example.com/artist/my_favorite_artist/",
"sameAs": "http://www.my_favorite_artist.com",
"name":"My Favorite Artist",
"description":"This is my favorite artist.",
"image":[
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/artist/my_favorite_artist/1x1/photo1.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["US","UK","MX"]
},
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/artist/my_favortie_artist/1x1/photo2.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["UA", "IR"]
}
],
"popularityScore": {
"@type": "PopularityScoreSpecification",
"value": 92,
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
},
{
"@type": "Country",
"name": "GB"
}
]
},
"potentialAction": {
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/artist/my_favorite_artist?autoplay=true",
"actionPlatform":[
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"subscription",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
},
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/artist_mix/my_favorite_artist/",
"url":"http://www.example.com/artist_mix/my_favorite_artist/",
"name":"My Favorite Artist Mix",
"description":"A playlist of songs similar to My Favorite Artist",
"potentialAction":{
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/artist_mix/my_favorite_artist?autoplay=true",
"actionPlatform":[
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"free",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
}
}
}
MusicAlbum
{
"@context":["http://schema.googleapis.com/", {"@language": "en"}],
"@type":"MusicAlbum",
"@id":"http://www.example.com/album/my_favorite_album",
"url":"http://www.example.com/album/my_favorite_album",
"name":"My Favorite Album",
"sameAs":"https://en.wikipedia.org/wiki/my_favorite_album_(my_favorite_artist_album)",
"description":"This is my favorite album.",
"datePublished":"2010-08-24",
"numTracks":"12",
"timeRequired":"P44M02S",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"image":[
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/album/my_favorite_album/1x1/photo1.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["US","UK","MX"]
},
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/album/my_favorite_album/1x1/photo2.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["UA", "IR"]
}
],
"popularityScore": {
"@type": "PopularityScoreSpecification",
"value": 87,
"eligibleRegion": {
"@type": "Country",
"name": "US"
}
},
"potentialAction": {
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/album/my_favorite_album?autoplay=true",
"actionPlatform":[
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"subscription",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
},
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/album_mix/my_favorite_album",
"url":"http://www.example.com/album_mix/my_favorite_album",
"name":"My Favorite Album Mix",
"description":"A playlist of songs similar to My Favorite Album",
"potentialAction":{
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/album_mix/my_favorite_album?autoplay=true",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"free",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
}
}
}
MusicRecording
{
"@context":["http://schema.googleapis.com/", {"@language": "en"}],
"@type":"MusicRecording",
"@id":"http://www.example.com/track/my_favorite_song",
"url":"http://www.example.com/track/my_favorite_song",
"name":"My Favorite Song",
"sameAs":"https://en.wikipedia.org/wiki/my_favorite_song_(song)",
"description":"This is my favorite song.",
"datePublished":"2010-08-24",
"duration":"PT3M54S",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_song/",
"name":"My Favorite Artist"
},
"inAlbum":{
"@type":"MusicAlbum",
"@id":"http://www.example.com/album/my_favorite_album",
"name":"My Favorite Album"
},
"image":[
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/track/my_favorite_song/1x1/photo1.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["US","UK","MX"]
},
{
"@type": "ImageObject",
"contentUrl" : "http://www.example.com/track/my_favorite_song/1x1/photo2.jpg",
"dateModified" : "2018-01-05T22:11:33+00:00",
"regionsAllowed" : ["UA", "IR"]
}
],
"popularityScore": {
"@type": "PopularityScoreSpecification",
"value": 97,
"eligibleRegion": "EARTH"
},
"potentialAction": {
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/track/my_favorite_song?autoplay=true",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf": {
"@type":"Offer",
"category":"subscription",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
},
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/track_mix/my_favorite_song",
"url":"http://www.example.com/track_mix/my_favorite_song",
"name":"My Favorite Song Mix",
"description":"A playlist of songs similar to My Favorite Song",
"potentialAction":{
"@type":"ListenAction",
"target": {
"@type":"EntryPoint",
"urlTemplate":"http://www.example.com/track_mix/my_favorite_song?autoplay=true",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/IOSPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.googleapis.com/GoogleAudioCast",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"expectsAcceptanceOf":{
"@type":"Offer",
"category":"free",
"eligibleRegion": {
"@type":"Country",
"name":"US"
}
}
}
}
}
Related pages
Check out the following pages for the topics related to these properties:
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["This documentation outlines the schema and properties for marking up music content, including artists (`MusicGroup`), albums (`MusicAlbum`), and songs (`MusicRecording`), using structured data."],["The schema uses JSON-LD to represent entities and their relationships, including key properties like `@type`, `@id`, `url`, `name`, and `potentialAction`."],["Relationships between entities are defined using properties such as `byArtist`, `inAlbum`, and `subjectOf`, linking songs to albums and artists, and potentially to playlists."],["Comprehensive metadata about music content like descriptions, release dates, durations, popularity scores, and family-friendliness indicators can be provided using additional properties."],["Using this structured data enables search engines and other services to better understand and utilize music content, enhancing its discoverability and user experience."]]],["The core content defines the schema for music entities: `MusicGroup`, `MusicAlbum`, and `MusicRecording`. Key actions include: specifying `@id`, `url`, and `name` for each entity; linking `MusicAlbum` to `MusicGroup` via `byArtist`; detailing `potentialAction` for listening; and defining `subjectOf` for entity-seeded actions. Each requires a unique, crawlable URL, and optional details like `description`, `image`, and `sameAs` enhance the data. Popularity is tracked via `popularityScore`. Specific actions and entities are required to populate different fields.\n"]]