Content markup properties of artists, albums, and songs

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 unique
  • url 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 unique
  • url 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 unique
  • url 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"
        }
      }
    }
  }
}

Check out the following pages for the topics related to these properties: