Identify the relationships among MusicGroup, MusicAlbum, MusicRecording, and MusicPlaylist

You need to provide the relationships among all the MusicGroup, MusicAlbum, and MusicRecording entity types in your catalog. This information helps Google display the proper order and structure of your content to users and identify the correct songs, albums, and artists when a user query is ambiguous.

Additionally, Listen Actions' main entity types (MusicGroup, MusicAlbum, and MusicRecording) let your app or platform play more content from a playlist (MusicPlaylist) once all the content from the seed entity is played. Check out the following scenario:

  • A MusicAlbum entity contains a list of songs from Album XYZ (a seed entity).
  • A MusicPlaylist entity contains a playlist of songs that are similar to the songs from Album XYZ.
  • The MusicAlbum entity includes the MusicPlaylist entity as an Entity-seeded Action.

In this setup, once all the songs from Album XYZ are played, your app can continue to play songs from the playlist provided by the MusicPlaylist entity.

Entity Action and Entity-seeded Action

Listen Actions support two types of Actions:

  • Entity Action: Plays a specific artist, album, or song (a seed entity).
    • It includes MusicGroup, MusicAlbum, MusicRecording.
  • Entity-seeded Action: Plays content similar to the seed entity.
    • It includes MusicPlaylist.
    • After completing an Entity Action, your app or platform may initiate an Entity-seeded Action.
    • An Entity-seeded Action can include playback of the content from the seed entity.

We recommend you include an Entity-seeded Action in every Entity Action.

MusicGroup, MusicAlbum, MusicRecording, and MusicPlaylist relations

Listen Actions' MusicGroup, MusicAlbum, MusicRecording, and MusicPlaylist have the following relations:

  • MusicAlbum and MusicRecording need to identify which MusicGroup they belong to.
  • MusicGroup, MusicAlbum, and MusicRecording can have MusicPlaylist as an Entity-seeded Action.
    • MusicPlaylist cannot have an Entity-seeded Action.

MusicGroup, MusicAlbum, MusicRecording, and MusicPlaylist examples

MusicGroup

  • Artist: My Favorite Artist
{
  "@context":"http://schema.googleapis.com/",
  "@type":"MusicGroup",
  "@id":"http://www.example.com/artist/my_favorite_artist/",
  "url":"http://www.example.com/artist/my_favorite_artist/",
  "name":"My Favorite Artist",
  "potentialAction":{ … },
  "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",
    "potentialAction":{ … },
  },
  ...
}

MusicAlbum

  • Album: My Favorite Album
  • Artist: My Favorite Artist
{
  "@context":"http://schema.googleapis.com/",
  "@type":"MusicAlbum",
  "@id":"http://www.example.com/album/my_favorite_album",
  "url":"http://www.example.com/album/my_favorite_album",
  "name":"My Favorite Album",
  "byArtist":{
    "@type":"MusicGroup",
    "@id": "http://www.example.com/artist/my_favorite_artist/",
    "name":"My Favorite Artist"
  },
  "potentialAction":{ … },
  "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",
    "potentialAction":{ … },
  },
  ...
}

MusicRecording

  • Song: My Favorite Song
  • Artist: My Favorite Artist
{
  "@context":"http://schema.googleapis.com/",
  "@type":"MusicRecording",
  "@id":"http://www.example.com/track/my_favorite_song",
  "url":"http://www.example.com/track/my_favorite_song",
  "name":"My Favorite Song",
  "byArtist":{
    "@type":"MusicGroup",
    "@id": "http://www.example.com/artist/my_favorite_artist/",
    "name":"My Favorite Artist"
  },
  "potentialAction":{ … },
  "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",
    "potentialAction":{ … },
  },
  ...
}

MusicPlaylist

  • A custom playlist: "Top Pop Songs of the 2010s"
{
  "@context":"http://schema.googleapis.com/",
  "@type":"MusicPlaylist",
  "@id":"http://www.example.com/playlist/top_pop_songs/",
  "url":"http://www.example.com/playlist/top_pop_songs/",
  "name":"Top Pop Songs of the 2010s",
  "genre": [
     "pop",
     "2010s"
  ],
  "numTracks":"46",
  "potentialAction":{ … },
  ...
}

Identify the relationships

Do the following:

  1. For MusicGroup,
  2. For MusicAlbum and MusicRecording,
    • Identify @id and name of its MusicGroup.
    • If you provide an Entity-seeded Action, identify @id and name of its MusicPlaylist.
  3. For MusicPlaylist,
    • If applicable, identify genre that best represents the content in the playlist.
    • If the playlist is hand curated, identify numTracks.
      • The absence of numTracks tells Google that the playlist is an auto-generated, endless playlist.