Rhapsody Partnership

Rhapsody is the number-one premium subscription music service, with more than one million members, who can listen to more than 16 million tracks on more than 70 consumer electronics devices, including connected audio systems, smartphones, Android tablets, MP3 players and connected TVs.

The Echo Nest and Rhapsody have worked to ensure that all Echo Nest API calls can be matched to the Rhapsody catalog for seamless integration between the services. Using these two together, developers can build applications that support full audio stream playback for any Rhapsody subscriber, with a fallback to 30-second samples for all other users.

Available Assets

The Rhapsody catalog provides a rich data set across their database of songs, including:

  1. Full streaming of millions of tracks for Rhapsody subscribers
  2. 30 second samples for all users
  3. Album art and artist images
Getting Started

When making calls to the Echo Nest API, use the following bucket: 'rhapsody-US'

As an example, Radiohead has a Rhapsody ID of Art.4817. To find biographies for Radiohead using our API and the Rhapsody ID, you would issue a query like this:

Note that the id parameter is of the form catalog:entity:id; in this case, 'rhapsody-US' is the catalog, 'artist' is the entity, and 'Art.4817' is the artist ID in the Rhapsody catalog.

You can also retrieve artist information and receive their IDs in the rhapsody-US name space. To do this, you use the bucket=id:rhapsody-US parameter on any call that returns artists, songs or tracks. As an example, to find artists similar to Radiohead, with Rhapsody foreign IDs returned, issue a call like this:

Note that the id parameter is of the form catalog:entity:id; in this case, rhapsody-US is the catalog; artist is the entity, and Art.4817 is the artist ID in the Rhapsody catalog. Example results:

 

"artists:" : [
    {
        "id": "ARH1N081187B9AC562"
        "name": "Thom Yorke",
        "foreign_ids": [
            {
                "catalog": "rhapsody-US",
                "foreign_id": "rhapsody-US:artist:Art.10620458"
            }
        ],
    }
]
 

Note that for each artist returned, there is a new foreign_ids block that includes a foreign_id of the form catalog:entity:id, in this case, rhapsody-US:artist:Art.10620458

Finally, note that to get the actual track information for Rhapsody, you can add the bucket=id:rhapsody-US bucket=tracks limit=true parameters to any Echo Nest call that returns song information. Example:

This call returns the following result:

    "songs": [
        {
            "artist_id": "ARH6W4X1187B99274F", 
            "artist_name": "Radiohead", 
            "audio_md5": "dfba82e87a27ca7d831a279268e6787a", 
            "id": "SOHJOLH12A6310DFE5", 
            "title": "Karma Police", 
            "tracks": [
                {
                "catalog": "rhapsody-US",
                "foreign_id": "rhapsody-US:track:Tra.1872369",
                "id": "TRXQOBC13A38799851"
                },
                // ...
            ],
        }
    ]

Similarly, to generate a playlist that returns Rhapsody track IDs, you can make an Echo Nest playlist/static call like so:

Note that within each song you are provided with a Rhapsody track id, which can then be used to pass to the Rhapsody API to perform streaming, gather album artwork, etc.