Call for Testers: New Rdio JavaScript API

2,172 views
Skip to first unread message

Ian Gilman

unread,
Sep 27, 2012, 7:56:53 PM9/27/12
to rdio...@googlegroups.com
We've been hard at work on a new JavaScript API to replace the existing Web Playback API. Instead of a Flash component, it uses an iframe to communicate with rdio.com, and provides not only playback but full access to the Web Services API with a slick authentication mechanism that allows you to make authenticated calls with nothing but client-side JavaScript.

This new API paves the way for several features that have been requested here, including playback on mobile web and using your web app to remote control Rdio. Unfortunately neither of those features are ready yet, but they're in the works.

We do feel the API is ready, however, for some brave early adopters to get in and start kicking around. It's already plenty capable, and we'd love to hear what you think of it.

So, who's in? If you're interested, please send an email to develope...@rd.io with "New Rdio JavaScript API" in the subject line. Depending on the response we may not let everyone in right away, but rest assured you'll be on the list.

Thank you,

-- Ian Gilman, Rdio Inc.
-- www.rdio.com/people/iangilman
-- www.iangilman.com



Basil Siddiqui

unread,
Jul 3, 2013, 8:56:44 AM7/3/13
to rdio...@googlegroups.com
Is this going to be released? Seems like the web playback api hasn't been replaced

Ian Gilman

unread,
Jul 3, 2013, 12:02:41 PM7/3/13
to rdio...@googlegroups.com
The JavaScript API is still in closed beta, but you can get access to it by following the instructions below.


-- Ian Gilman, Rdio Inc.



--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rdio-api/4a62ec2f-94fa-4f97-b993-187b140a1397%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Josiah Witt

unread,
Oct 23, 2013, 7:05:02 PM10/23/13
to rdio...@googlegroups.com
How long will it take to get access after the email is sent?

Tyler Waneka

unread,
Feb 24, 2014, 11:55:30 PM2/24/14
to rdio...@googlegroups.com, ian.g...@rd.io
I would really love access to the new API, are you still looking for beta testers? I sent an email yesterday, please let me know if you need anything else from me. Thanks!

-Tyler

Tyler Waneka

unread,
Feb 27, 2014, 4:02:04 PM2/27/14
to rdio...@googlegroups.com, ian.g...@rd.io
I'm having trouble with the new API OAuth. (Sorry if this is the wrong place to post this.)

I'm making the first part of the request correctly and getting the authorization code back. Then I run this code: (node.js and express)

exports.home = function(req, res) {
  console.log('Request: ' + req.query.code)

  var options = {
    host: 'www.rdio.com'
    , path: '/oauth2/token'
    , method: 'POST'
    , headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
          , 'Content-Length': 0
          , 'Authorization': 'Basic 3OUutphWh4HtZu_iRQPcMA:9_dDUANmJ-7fly_9XrLD3g'
      }
  }
  var req = http.request(options, function(res) {
    console.log('Response from oauth2: ' + res.statusCode)
    res.on('data', function(chunk) {
      console.log('BODY: ' + chunk)
      console.log('HEADERS: ' + JSON.stringify(res.headers));
    })
  })
  req.on('error', function(e){
    console.log('problem with request: ' + e.message)
  })
  req.end()
  res.render('index.html')
}

I'm getting a 503 status code in response. Anything look wrong? 

Thanks for any and all help.

-Tyler

R. Kevin Nelson

unread,
Feb 28, 2014, 5:07:39 AM2/28/14
to rdio...@googlegroups.com
Hi Tyler,

Your HTTP Basic authentication is formatted incorrectly.  The "username:password" string is supposed to be run through base64 before it's set as the header.  See http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side for more reference.

You should also reset your client secret for this app, since you've just posted it to a public list!

Best,
Kevin
 

-- -- --
R. Kevin Nelson
API Engineer @ Rdio, Inc.


--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.

Tyler Waneka

unread,
Feb 28, 2014, 12:54:09 PM2/28/14
to rdio...@googlegroups.com
Thanks Kevin, 

That seems to have helped, but now I'm on a different error. :)

I'm getting the following error: 
Response from oauth2: 400
BODY: {"error_description": "missing grant_type parameter", "error": "invalid_request"}

Here's the code. I've commented out all the different areas that I've tried to send the grant_type, none of them worked.
exports.home = function(req, res) {
  var code = req.query.code
  console.log('Request: ' + code)
  var authCode = new Buffer('CLIENT_ID:CLIENT_SECRET').toString('base64')
  console.log('AuthCode: ' + authCode)
  // var params = {
  //   grant_type: 'authorization_code'
  //   , authorization_code: code
  //   , redirect_uri: 'http://localhost:3000/home'
  // }
  var options = {
    host: 'www.rdio.com'
    , path: '/oauth2/token' // + '?' + qs.stringify(params)
    , method: 'POST'
    // , grant_type: 'authorization_code'
    // , authorization_code: code
    // , redirect_uri: 'http://localhost:3000/home'
    , headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
          , 'Content-Length': 0
          // , 'grant_type': 'authorization_code'
          // , 'authorization_code': code
          // , 'redirect_uri': 'http://localhost:3000/home'
          , 'Authorization': 'Basic ' +  authCode
      }
  }
  var req = http.request(options, function(res) {
    console.log('Response from oauth2: ' + res.statusCode)
    res.on('data', function(chunk) {
      console.log('BODY: ' + chunk)
      console.log('HEADERS: ' + JSON.stringify(res.headers));
    })
  })
  req.on('error', function(e){
    console.log('problem with request: ' + e.message)
  })
  // req.write(qs.stringify(params))
  req.end()
  res.render('index.html')
}

In the documentation, it reads:
POST /oauth2/token HTTP/1.1
Host: www.rdio.com
Authorization: Basic czZCaGRSa3F0Mzo3RmpmcDBaQnIxS3REUmJuZlZkbUl3
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=19QMZODbnTJlrG5nnTSfyQ
    &redirect_uri=http://example.com/oauth

But I can't figure out how to pass the grant_type as shown above.

Once again, thanks for the help.

-Tyler

Michael Caputo

unread,
Jul 16, 2014, 4:33:24 PM7/16/14
to rdio...@googlegroups.com, ian.g...@rd.io
Is this JS API still under development? I would like to get access if possible.



On Thursday, September 27, 2012 7:56:51 PM UTC-4, Ian Gilman wrote:

Devin Sevilla

unread,
Jul 17, 2014, 2:29:48 PM7/17/14
to rdio...@googlegroups.com
On Wed, Jul 16, 2014 at 1:33 PM, Michael Caputo <m...@mikecaputo.com> wrote:
> Is this JS API still under development? I would like to get access if
> possible.

Yes, send an email to develope...@rd.io with your www.rdio.com
email address and we'll whitelist you.

-- Devin

Jane Williams

unread,
Jul 20, 2014, 11:30:25 PM7/20/14
to rdio...@googlegroups.com, ian.g...@rd.io
Hi Ian,

I'm new to the Rdio Web Playback API and have been working with the JQuery Rdio library. I've been using the example HTML code but don't seem be to able to get any music to play in my browser. I have requested and gotten a playback token. What are some of the most common other issues to look into? I am not receiving any error messages on my end.

Thanks,
Jane


On Thursday, September 27, 2012 4:56:51 PM UTC-7, Ian Gilman wrote:

Ian Gilman

unread,
Jul 21, 2014, 6:34:55 PM7/21/14
to rdio...@googlegroups.com
Jane,

I highly recommend moving up to the beta JavaScript API, which is much easier to work with than the Rdio Web Playback API. If you'd like to do so, send an email to develope...@rd.io.

If you want to stick with the Rdio Web Playback API, Devin might be able to help diagnose your problem if you share a link to your app.


-- Ian Gilman, Rdio Inc.



--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.

AV

unread,
Sep 6, 2014, 3:39:58 PM9/6/14
to rdio...@googlegroups.com, ian.g...@rd.io
If each user is authenticated using their FREE rdio account, aren't the playbacks limited to 30 second clips?
Is there a mechanism to let them play full songs with their free RDIO account? This is the main reason I stopped looking at this API -at the time, there seemed to be a restriction - for only 30 second playbacks for songs in a playlist (retrieved using an API key).

Thanks

Devin Sevilla

unread,
Sep 10, 2014, 12:55:14 PM9/10/14
to rdio...@googlegroups.com
On Sat, Sep 6, 2014 at 12:39 PM, AV <avarma...@gmail.com> wrote:
> If each user is authenticated using their FREE rdio account, aren't the
> playbacks limited to 30 second clips?
> Is there a mechanism to let them play full songs with their free RDIO
> account? This is the main reason I stopped looking at this API -at the time,
> there seemed to be a restriction - for only 30 second playbacks for songs in
> a playlist (retrieved using an API key).

Users will only hear 30-second samples. We do not support apps that
will play full-length tracks with ads.

--
Devin Sevilla
API Engineer, Rdio Inc.
http://rdio.com/people/devin_s/

Tom Andrew

unread,
Nov 15, 2014, 7:27:21 AM11/15/14
to rdio...@googlegroups.com

I have created test APP in admin panel and got Client ID, and replaced this ID in example code. 
After I launched the script "http://test.hm/utils/examples/local-queue/index.html", I got a dialog modal box with a message "The Rdio API requires Flash in this browser. Please install (or unblock) the Flash plug-in." (see screen: http://awesomescreenshot.com/0b53utr56e)) and btn didn't work for me.

The question is: Do I need to install flash player on browser, or it is possible to use API without it? Am I missing something very simple.

Ian Gilman

unread,
Nov 16, 2014, 2:04:38 PM11/16/14
to rdio...@googlegroups.com
Tom,

It depends on the browser. Which browsers have you tested on?

-- Ian Gilman
-- digital renaissance man



--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.

Tom Andrew

unread,
Nov 16, 2014, 9:40:59 PM11/16/14
to rdio...@googlegroups.com
Firefox and Chrome Ian. Should it be working on these? We get the same error on both.
Thanks. 

Tom Andrew

unread,
Nov 17, 2014, 5:47:59 AM11/17/14
to rdio...@googlegroups.com
Sorry, I'll just confirm that it does work in Chrome now. Not sure what the initial problem was, probably on our end. 
Perhaps firefox is still not compatible without flash?

Ian Gilman

unread,
Nov 17, 2014, 12:41:46 PM11/17/14
to rdio...@googlegroups.com
What version and OS of Firefox? Firefox has historically not supported mp3 directly, which is why we've used Flash for it, but they've recently started supporting mp3, as you can see:


When I use the JS API without Flash on my Mac Firefox 33, it works fine. Just to verify things are working properly, it would be great to know exactly where you're seeing it. 


-- Ian Gilman
-- digital renaissance man



Tom Andrew

unread,
Nov 19, 2014, 4:23:01 AM11/19/14
to rdio...@googlegroups.com
Yes thanks Ian. We've done more testing and found that it only a bit buggy on Firefox on Linux. In windows it works fine. there must be some differences related to the OS. Sorry about that.

We've nearly got our app up and running but continue to receive this error on oauth 2.0

in POST request "https://www.rdio.com/api/1/getAccessTokenScope" I got status "401 UNAUTHORIZED" with response "{"error_description": "Client lacks the permission to make this call", "error": "insufficient_scope"}"

Does anyone know what is happening?

Ian Gilman

unread,
Nov 19, 2014, 4:30:51 PM11/19/14
to rdio...@googlegroups.com
Tom,

Is the Flash error intermittent on Linux Firefox? According to:

https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats#Browser_compatibility

...it should work with this caveat: "relies on GStreamer codecs".

If it's intermittent, maybe there's something we can do inside the API.

The 401 error you're seeing just means that your user isn't logged in... it's perfectly normal. Take a look at:

http://www.rdio.com/developers/docs/jsapi/methods/ref-r-ready

...for information on errors you might get during startup.

-- Ian Gilman
-- digital renaissance man
-- www.iangilman.com



> --
> You received this message because you are subscribed to the Google Groups "Rdio API" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rdio-api/2d3e117e-a7e0-4160-9975-cfd1667264c3%40googlegroups.com.

Tom Andrew

unread,
Nov 29, 2014, 9:54:30 PM11/29/14
to rdio...@googlegroups.com
Hey Ian, I can't confirm with 100% accuracy. However my developer has stated the issues we were experiencing, no longer exist. Perhaps they were just a temporary bug? Anyway, we can't seem to recreate the Firefox so I guess that's a good thing. This new JS api works a treat to be honest. We've had very little problems and have implemented across our entire site. Take a look here if you wish (www.what-song.com)

Also, I was just wondering how I track the API, and what the call limits are with this new API (Still 15,000/day?). And with OAuth 1.0 I could track how many daily calls I was getting, however I can't see anyway to track OAuth 2.0 or the JS calls? Would you be able to point me to a 2.0 dashboard page or just anything so I can tell if user usage has increased.
Thanks,
Tom

Ian Gilman

unread,
Dec 12, 2014, 12:22:25 PM12/12/14
to rdio...@googlegroups.com
Tom,

Great to hear it's working out! Regarding the call limits, Devin can answer better than I. If you still need info on that front, try writing to develope...@rd.io.


-- Ian Gilman
-- digital renaissance man



rog3r

unread,
Apr 17, 2015, 5:41:48 PM4/17/15
to rdio...@googlegroups.com
Hello,

I had access to the JavaScript API but I accidentally deleted my account.
Can I have access again? My rdio usernames is: rog3r

Onward,

Ian Gilman

unread,
Apr 21, 2015, 1:19:57 PM4/21/15
to rdio...@googlegroups.com
You’ve been added…let me know if you have any trouble with it. :) 


-- Ian Gilman, Rdio Inc.



Eric Alves da Rocha

unread,
Jun 2, 2015, 8:13:00 AM6/2/15
to rdio...@googlegroups.com
Hi!

Could you add me to beta test? my user is ericalves.. thanks!

Ian Gilman

unread,
Jun 10, 2015, 12:45:31 PM6/10/15
to rdio...@googlegroups.com
Eric, 

Done! I’ll send you an intro email separately. 


-- Ian Gilman
-- digital renaissance man



James Butler

unread,
Jul 8, 2015, 7:08:26 PM7/8/15
to rdio...@googlegroups.com
Hi Devin,

Just to confirm: does this statement mean that regardless of the user's account level, they will not be able to play a full song on an app that uses the Rdio playback API?

Cheers,
James

Devin Sevilla

unread,
Jul 9, 2015, 8:19:07 PM7/9/15
to rdio...@googlegroups.com
On Wed, Jul 8, 2015 at 4:08 PM, James Butler <jmsbt...@gmail.com> wrote:
> Just to confirm: does this statement mean that regardless of the user's
> account level, they will not be able to play a full song on an app that uses
> the Rdio playback API?

Checkout this table that shows what you can expect for different account types:

http://www.rdio.com/developers/docs/faq/ref-what-will-my-users-hear

-- Devin

Carlos Sosa

unread,
Sep 4, 2015, 7:03:10 PM9/4/15
to Rdio API
Hi!

Could you add me to beta test? I wish to control Rdio Remotely from Emacs.
My user is gnusosa. 

Thanks!

On Thursday, July 9, 2015 at 5:19:07 PM UTC-7, Devin S. wrote:

Gaurav Dixit

unread,
Sep 8, 2015, 8:16:00 AM9/8/15
to Rdio API, ian.g...@rd.io
Hi Ian!

Would love to try the API. Want to create a client on my BlackBerry.
Would be great if you could add me to the Beta program :)

Rdio : GD431


Thanks!


On Friday, September 28, 2012 at 5:26:53 AM UTC+5:30, Ian Gilman wrote:
We've been hard at work on a new JavaScript API to replace the existing Web Playback API. Instead of a Flash component, it uses an iframe to communicate with rdio.com, and provides not only playback but full access to the Web Services API with a slick authentication mechanism that allows you to make authenticated calls with nothing but client-side JavaScript.

This new API paves the way for several features that have been requested here, including playback on mobile web and using your web app to remote control Rdio. Unfortunately neither of those features are ready yet, but they're in the works.

We do feel the API is ready, however, for some brave early adopters to get in and start kicking around. It's already plenty capable, and we'd love to hear what you think of it.

So, who's in? If you're interested, please send an email to develope...@rd.io with "New Rdio JavaScript API" in the subject line. Depending on the response we may not let everyone in right away, but rest assured you'll be on the list.

Thank you,

Ian Gilman

unread,
Sep 9, 2015, 2:44:46 PM9/9/15
to rdio...@googlegroups.com
Carlos, 

Please email develope...@rd.io and they’ll add you. 


-- Ian Gilman
-- digital renaissance man



--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.

Ian Gilman

unread,
Sep 9, 2015, 2:45:39 PM9/9/15
to rdio...@googlegroups.com, Gaurav Dixit
Guarav,

Please email develope...@rd.io and they’ll add you. 

Btw, have you seen http://forte.fm/ ? It’s an Rdio web app meant for the new BlackBerry. 


-- Ian Gilman, Rdio Inc.



--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.

gaurav2...@gmail.com

unread,
Sep 9, 2015, 2:48:37 PM9/9/15
to Ian Gilman, rdio...@googlegroups.com
Yes I have! It is good!
I want to try my hand at developing a native app ‎. Besides, does not matter much if it makes it to the store or not. Some of my friends and I would love to have a native app :) 


Sent from my BlackBerry Passport. 
From: Ian Gilman
Sent: Thursday, September 10, 2015 12:15 AM
To: rdio...@googlegroups.com; Gaurav Dixit
Subject: Re: [rdio-api] Call for Testers: New Rdio JavaScript API

Ian Gilman

unread,
Sep 10, 2015, 1:32:06 PM9/10/15
to rdio...@googlegroups.com, Gaurav Dixit
Sounds awesome! Keep in mind that the JavaScript API needs to run in a web view, so if you’re doing a native app, you’ll have to have a web view in there. 

Cheers, 


-- Ian Gilman, Rdio Inc.



gaurav2...@gmail.com

unread,
Sep 10, 2015, 1:39:43 PM9/10/15
to Ian Gilman, rdio...@googlegroups.com
Yup, already on it. Thanks a ton Ian! 

Cheers, 
Gaurav :)

Sent from my BlackBerry Passport. 
From: Ian Gilman
Sent: Thursday, September 10, 2015 11:02 PM

gaurav2...@gmail.com

unread,
Sep 10, 2015, 1:39:50 PM9/10/15
to Ian Gilman, rdio...@googlegroups.com
Yup, love using JS with BlackBerry cascades, so looking forward to it! Thanks a ton Ian!

mirosla...@ymail.com

unread,
Sep 14, 2015, 9:06:28 AM9/14/15
to Rdio API, ian.g...@rd.io
Hi guys.

I would like to apply for new web api access. I sent an email, but still no answer.
Do you accept new test developers?

Miro.

Nitin Kumar

unread,
Sep 16, 2015, 12:13:17 AM9/16/15
to rdio...@googlegroups.com
ok

--
You received this message because you are subscribed to the Google Groups "Rdio API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rdio-api+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages