canStream semantics

131 views
Skip to first unread message

Ed Summers

unread,
Aug 6, 2011, 9:07:37 AM8/6/11
to rdio...@googlegroups.com
I was wondering about the 'canStream' attribute in the search response
(example below). It's my understanding that the "streamability" of
content is geographically dependent. For example, some things that
stream in the US might not be able to stream in the UK. So when I see
canStream is false, does this mean

a) the API knows my location based on my oauth credentials, and uses
that to set canStream
b) the API doesn't know my location and canStream is always set
relative to the US
c) I am mistaken about streamability being geographically dependent

Any insight, help would be helpful. My apologies if I missed an
explanation of this in the docs.

//Ed

{
"status": "ok",
"result": {
"person_count": 0,
"track_count": 12,
"album_count": 1,
"playlist_count": 0,
"results": [
{
"baseIcon": "album/9/3/3/000000000009c339/square-200.jpg",
"releaseDate": "2001-08-22",
"artistUrl": "/artist/Stereolab/",
"duration": 3779,
"isClean": false,
"shortUrl": "http://rd.io/x/Qj5LnHo",
"canStream": false,
"embedUrl": "http://rd.io/e/Qj5LnHo",
"type": "a",
"price": "None",
"key": "a639801",
"icon":
"http://media.rd.io/album/9/3/3/000000000009c339/square-200.jpg",
"canSample": false,
"name": "Sound - Dust",
"isExplicit": false,
"artist": "Stereolab",
"url": "/artist/Stereolab/album/Sound_-_Dust/",
"artistKey": "r88792",
"length": 12,
"trackKeys": [
"t7633363",
"t7633369",
"t7633383",
"t7633392",
"t7633401",
"t7633408",
"t7633415",
"t7633426",
"t7633439",
"t7633447",
"t7633455",
"t7633466"
],
"canTether": false,
"displayDate": "Aug 22, 2001"
}
],
"artist_count": 0,
"number_results": 1
}
}

Ian McKellar

unread,
Aug 6, 2011, 8:18:51 PM8/6/11
to rdio...@googlegroups.com
Hi Ed,

I actually confuse myself about the meaning of canStream from time to
time. All of the right properties (canStream, canDownload,
canDownloadAlbumOnly, canSample and canTether) describe the rights
that Rdio has for the region that the API call is coming from. If the
API call is authenticated and the authenticated user is a subscriber
then the region will be based on their billing region, so if they're
using a US credit card then they're a US user. Otherwise the region is
based on their IP address.

So if you want to find if something is streamable in the US there are two ways:
* make the call as a US subscriber
* make the call from a US IP address

Does that help answer your question?

Ian

> --
> You received this message because you are subscribed to the Google Groups "Rdio API" group.
> To post to this group, send email to rdio...@googlegroups.com.
> To unsubscribe from this group, send email to rdio-api+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rdio-api?hl=en.
>

Ed Summers

unread,
Aug 6, 2011, 10:48:41 PM8/6/11
to rdio...@googlegroups.com
On Sat, Aug 6, 2011 at 8:18 PM, Ian McKellar <ian.mc...@rd.io> wrote:
> So if you want to find if something is streamable in the US there are two ways:
>  * make the call as a US subscriber
>  * make the call from a US IP address

It does yes, thanks very much!

//Ed

Eric Sonsie Daams

unread,
Apr 23, 2012, 1:54:55 AM4/23/12
to rdio...@googlegroups.com
Hi there,

My apologies for digging up an old thread, but I seem to be getting the incorrect API response according to Ian's explanation regarding canStream.

I'm based in Australia. The album is Delta Spirit, by Delta Spirit, which is unavailable to me. However, this is what I'm getting from the API:

    {
        "baseIcon": "album/3/0/a/0000000000159a03/square-200.jpg",
        "releaseDate": "2012-03-13",
        "artistUrl": "/artist/Delta_Spirit/",
        "duration": 2576,
        "isClean": false,
        "shortUrl": "http://rd.io/x/Qj5XxUA",
        "canStream": true,
        "embedUrl": "http://rd.io/e/Qj5XxUA",
        "type": "a",
        "price": "9.99",
        "key": "a1415683",
        "icon": "http://cdn3.rd.io/album/3/0/a/0000000000159a03/square-200.jpg",
        "canSample": true,
        "name": "Delta Spirit",
        "isExplicit": false,
        "artist": "Delta Spirit",
        "url": "/artist/Delta_Spirit/album/Delta_Spirit/",
        "artistKey": "r909285",
        "length": 11,
        "trackKeys": ["t15902402", "t15902403", "t15902404", "t15902407", "t15902409", "t15902410", "t15902412", "t15902414", "t15902416", "t15902418", "t15902419"],
        "canTether": true,
        "displayDate": "Mar 13, 2012"
    },

As you can see, canStream is set to true. This is with an authorized request using my oAuth details, so really this should be returning false for canStream.

Note that this is not consistently returning the wrong value -- some of the albums that are unavailable to me are being displayed as canStream === false.

Eric 

danDawson

unread,
May 7, 2012, 3:53:08 AM5/7/12
to rdio...@googlegroups.com
Hey Guys,

Looks like I am in the same situation. I am from Australia,

It seems I cannot play any of The Wombat Songs, funnily enough I was using that as a test case to test my code. It wasn't until I changed it that it all worked.

Is there a bug report or bug tracker code for this issue? Perhaps regional-based search results.

~ Dan

Ian McKellar

unread,
May 7, 2012, 8:43:01 PM5/7/12
to rdio...@googlegroups.com
Hi all,

There's definitely a bug here. I'm sorry for the lack of updates on it - I'm working on tracking it down but it's tricker than it initially appeared.

I'll keep this thread updated on my progress.

Ian

--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rdio-api/-/3WxeLGIKpJ4J.

To post to this group, send email to rdio...@googlegroups.com.
To unsubscribe from this group, send email to rdio-api+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rdio-api?hl=en.



--
Ian McKellar, API, Rdio Inc.
@ian @rdioapi

Michael

unread,
Jun 3, 2012, 6:57:43 AM6/3/12
to rdio...@googlegroups.com, i...@rd.io
So if you want to find if something is streamable in the US there are two ways:
 * make the call as a US subscriber
 * make the call from a US IP address

So if I wanted to know all the countries from which a track/album is streamable I would have to either:
  • Somehow create a fake account for every country.
  • Use a VPN service for every country
Is there any particular reason why the API was designed this way? The Spotify API simply returns a list of country codes where the track/album is streamable from. Is it because you don't want developers caching 'isStreamable' data and providing inaccurate and out of date results? It would not be good for Rdio if a 3rd Party website claimed their favourite album wasn't streamable when in fact it recently had become streamable. On the other hand, allowing developers to cache results would place less load on your servers and allow for snappier websites. Are there any plans to include some kind of 'streamableCountries' data in the API? Perhaps there could be a guideline that data could only be cache for 24 hours?

Not completely related, but I've noticed that some albums have different Rdio keys for essentially the same album - one that is streamable from the US and the other that is streamable from AUS. For example: http://www.rdio.com/artist/The_Magnetic_Fields/album/Love_At_The_Bottom_Of_The_Sea_1/  and http://www.rdio.com/artist/The_Magnetic_Fields/album/Love_at_the_Bottom_of_the_Sea/ are practically identical but the first one is streamable in AUS and the other is streamable in the US. The only difference I can see is that the first one lists EMI Australia as the label and the other one lists Merge. I suppose at least technically they are different albums, but it would be handy if they were grouped together under a 'Master ID' similar to how MusicBrainz has 'release groups' and Discogs has 'master releases'.

I have a US account but most of my friends on Rdio have Australian accounts. What this means is that I very often see 'Unavailable' in albums in my 'Heavy Rotation' page. At first I thought this must mean there are lot of albums available in Aus that aren't available in the US. However, I later realised that most of the time this just means that the Australia release of the album is unavailable but the US release is. I think Rdio needs to be smart enough to suggest something along the lines of, "The Australian version of that album isn't available to you, but here's the US version instead which is actually identical!" I realise I could do this using the API, but I'm going quite off topic and suggesting that Rdio does this for their web app. Rdio already suffers from the perception that it's library size is half the size of Spotify's. I now know that currently Rdio's library size is on par with Spotify's, but the situation I describe above is not at all helping escape this perception. I really want Rdio to succeed! I think Spotify's near monopolistic dominance and walled garden approach to it's API is very bad for the future of streaming music.

> To unsubscribe from this group, send email to rdio-api+unsubscribe@googlegroups.com.

> To unsubscribe from this group, send email to rdio-api+unsubscribe@googlegroups.com.

> To unsubscribe from this group, send email to rdio-api+unsubscribe@googlegroups.com.

Ian McKellar

unread,
Jun 4, 2012, 1:11:24 AM6/4/12
to Michael, rdio...@googlegroups.com
Hi Michael,

There are a couple of ways to get more availability info. We just added the ability to override the region for requests - you can pass region=AU to make a call as if it's coming from Australia or region=US to make a call as if it's coming from the US. There's also an optional Track.streamRegions field to find out what regions a track is streamable in. For example:

We're currently working on doing a better job unifying albums across regions. Right now we only unify albums if all of the tracks are the same and if the release date is the same. Those two versions of the Magnetic Fields albums have different release dates. Soon we'll be able to show the correct release date in each region but show the in a unified manner.

Ian 

Reply all
Reply to author
Forward
0 new messages