• 1
  • 4
  • 5
  • 6(current)
  • 7
  • 8
  • 28
[RELEASE] Rdio Music Addon
#76
I'm having trouble using the plugin as of yesterday on XBMCBuntu. Upon choosing a song to play, XBMC tells me it's working and eventually spits back an error. Here's a snipped of the error log:
Code:
12:58:52 T:2631465840  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:58:52 T:2631465840  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation main with params {'mode': 'main'}
12:58:52 T:2631465840  NOTICE: Rdio: Executed Rdio addon operation main in 9 ms
12:58:55 T:2631465840  NOTICE: -->Python Interpreter Initialized<--
12:58:55 T:2631465840  NOTICE: CommonFunctions-1.1.0
12:58:55 T:2631465840  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:58:55 T:2631465840  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation reauthenticate with params {'mode': 'reauthenticate'}
12:58:55 T:2631465840  NOTICE: Rdio: Logging out from Rdio
12:58:55 T:2631465840  NOTICE: Rdio: Successfully logged out from Rdio
12:58:55 T:2631465840  NOTICE: Rdio: Authenticating to Rdio
12:58:55 T:2631465840  NOTICE: Rdio: Authorizing OAuth token https://www.rdio.com/oauth/authorize?oauth_token=h9xsk76tnq8n3hfrssnjqbae
12:58:56 T:2631465840  NOTICE: Rdio: Logging in to Rdio using URL https://www.rdio.com/signin/?next=/oauth/authorize?oauth_token=h9xsk76tnq8n3hfrssnjqbae
12:58:57 T:2631465840  NOTICE: Rdio: Approving oauth token h9xsk76tnq8n3hfrssnjqbae with pin 9514
12:58:58 T:2631465840  NOTICE: Rdio: Verifying OAuth token on Rdio API with pin 9514
12:58:59 T:2631465840  NOTICE: Rdio: Getting playback token
12:58:59 T:2631465840  NOTICE: Rdio: Getting current user
12:58:59 T:2631465840  NOTICE: Rdio: Successfully authenticated to Rdio
12:58:59 T:2631465840  NOTICE: Rdio: Executed Rdio addon operation reauthenticate in 560 ms
12:59:02 T:2631465840  NOTICE: -->Python Interpreter Initialized<--
12:59:02 T:2631465840  NOTICE: CommonFunctions-1.1.0
12:59:02 T:2631465840  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:59:02 T:2631465840  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation new_releases with params {'mode': 'new_releases'}
12:59:02 T:2631465840  NOTICE: Rdio: Executed Rdio addon operation new_releases in 59 ms
12:59:09 T:2737814384  NOTICE: -->Python Interpreter Initialized<--
12:59:09 T:2737814384  NOTICE: CommonFunctions-1.1.0
12:59:09 T:2737814384  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:59:09 T:2737814384  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation heavy_rotation with params {'mode': 'heavy_rotation'}
12:59:10 T:2737814384  NOTICE: Rdio: Executed Rdio addon operation heavy_rotation in 49 ms
12:59:14 T:2737814384  NOTICE: -->Python Interpreter Initialized<--
12:59:14 T:2737814384  NOTICE: CommonFunctions-1.1.0
12:59:14 T:2737814384  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:59:14 T:2737814384  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation tracks with params {'mode': 'tracks', 'key': 'a395537'}
12:59:15 T:2737814384  NOTICE: Rdio: Executed Rdio addon operation tracks in 80 ms
12:59:16 T:2737814384  NOTICE: -->Python Interpreter Initialized<--
12:59:16 T:2737814384  NOTICE: CommonFunctions-1.1.0
12:59:16 T:2737814384  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:59:16 T:2737814384  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation play with params {'play': 'True', 'mode': 'play', 'key': 't4854238'}
12:59:16 T:2737814384  NOTICE: Rdio: Executed Rdio addon operation play in 49 ms
12:59:16 T:3012876048  NOTICE: DVDPlayer: Opening: rtmpe://fms.25AC.edgecastcdn.net:1935/8025AC/media.rd.io app=8025AC/media.rd.io playpath=mp3:s/music/8/b/e/e/8bee047973d3485f8afb1cf90393a339/full-192?80e2d2f4276a71565175a1c15b3f54af7967c23381204c636aff6402a75a2f68994407a53e629eeed1e277c1994b8e61d7b36c31a817702ec3a7795a077a7c9a812f61bc8ed626792bb42b477bdf3f89251e4966bc7dd773963c9da4cfb8ad97c6bad8b38d2003769550a88b62f22d5d6f55ceae4b746d8dfd2c80
12:59:16 T:3012876048 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
12:59:16 T:2675960688  NOTICE: Creating InputStream
12:59:17 T:2675960688 WARNING: HandShake: Type mismatch: client sent 6, server answered 8
12:59:17 T:2675960688   ERROR: Closing connection: NetStream.Failed
12:59:17 T:2675960688   ERROR: CDVDPlayer::OpenInputStream - error opening [rtmpe://fms.25AC.edgecastcdn.net:1935/8025AC/media.rd.io app=8025AC/media.rd.io playpath=mp3:s/music/8/b/e/e/8bee047973d3485f8afb1cf90393a339/full-192?80e2d2f4276a71565175a1c15b3f54af7967c23381204c636aff6402a75a2f68994407a53e629eeed1e277c1994b8e61d7b36c31a817702ec3a7795a077a7c9a812f61bc8ed626792bb42b477bdf3f89251e4966bc7dd773963c9da4cfb8ad97c6bad8b38d2003769550a88b62f22d5d6f55ceae4b746d8dfd2c80]
12:59:17 T:2675960688  NOTICE: CDVDPlayer::OnExit()
12:59:17 T:2675960688  NOTICE: CDVDPlayer::OnExit() deleting input stream
12:59:17 T:3012876048   ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.audio.rdio/?play=True&mode=play&key=t4854238]
12:59:17 T:2737814384  NOTICE: -->Python Interpreter Initialized<--
12:59:17 T:2737814384  NOTICE: CommonFunctions-1.1.0
12:59:17 T:2737814384  NOTICE: /home/xbmc/.xbmc/userdata/addon_data/plugin.audio.rdio/
12:59:17 T:2737814384  NOTICE: Rdio: Executing Rdio 1.3.3 addon operation play with params {'play': 'True', 'mode': 'play', 'key': 't4854480'}
12:59:17 T:2737814384  NOTICE: Rdio: Executed Rdio addon operation play in 29 ms
12:59:17 T:3012876048  NOTICE: DVDPlayer: Opening: rtmpe://fms.25AC.edgecastcdn.net:1935/8025AC/media.rd.io app=8025AC/media.rd.io playpath=mp3:s/music/9/4/6/8/9468736a96f242a7866a67b02e645e42/full-192?80e2d2f4276a71565175a1c15b3f54af7967c23381204c636aff6402a75a2f68994507a53e629eeeeb29284032265a6d444ab35a88ec858acfd54a0e75b72de319f9bd578c9343414dbe66e9fc15a8db32605e807c2b0550f4c3fdf27565ea9b74dd4b2a7f8b33f766bea482634eb7974c0fd9a94c8ed264826517
12:59:17 T:3012876048  NOTICE: CDVDPlayer::CloseFile()
12:59:17 T:3012876048 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
12:59:17 T:3012876048  NOTICE: DVDPlayer: waiting for threads to exit
12:59:17 T:3012876048  NOTICE: DVDPlayer: finished waiting
12:59:17 T:3012876048 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
12:59:17 T:2675960688  NOTICE: Creating InputStream
12:59:17 T:2675960688 WARNING: HandShake: Type mismatch: client sent 6, server answered 8
12:59:18 T:2675960688   ERROR: Closing connection: NetStream.Failed
12:59:18 T:2675960688   ERROR: CDVDPlayer::OpenInputStream - error opening [rtmpe://fms.25AC.edgecastcdn.net:1935/8025AC/media.rd.io app=8025AC/media.rd.io playpath=mp3:s/music/9/4/6/8/9468736a96f242a7866a67b02e645e42/full-192?80e2d2f4276a71565175a1c15b3f54af7967c23381204c636aff6402a75a2f68994507a53e629eeeeb29284032265a6d444ab35a88ec858acfd54a0e75b72de319f9bd578c9343414dbe66e9fc15a8db32605e807c2b0550f4c3fdf27565ea9b74dd4b2a7f8b33f766bea482634eb7974c0fd9a94c8ed264826517]
12:59:18 T:2675960688  NOTICE: CDVDPlayer::OnExit()
12:59:18 T:2675960688  NOTICE: CDVDPlayer::OnExit() deleting input stream
12:59:18 T:3012876048   ERROR: Playlist Player: skipping unplayable item: 1, path [plugin://plugin.audio.rdio/?play=True&mode=play&key=t4854480]
#77
(2012-07-29, 19:17)cmckitterick Wrote: I'm having trouble using the plugin as of yesterday on XBMCBuntu. Upon choosing a song to play, XBMC tells me it's working and eventually spits back an error. Here's a snipped of the error log:

I also get this error. Here's my debugging error log: http://pastebin.com/39hVD4Vc

xbmc: 2:11.0~git20120321.14feb09-0ubuntu1~ppa1~natty
librtmp0: 2.4~20110711.gitc28f1bab-1ubuntu0~ppa2~natty2
#78
I can log in and see my stuff but when I select a song it churns and churns then nothing no audio and back to the song I selected any ideas?
#79
Maybe you could show us your log..?
Image
#80
Can't play anything after trying everything suggested so far in this thread. I am able to add artists or albums to my collection with ease, but when I select any of my songs I get an error, either "One or more items failed to play. Check the log file for details" or "Playlist. Can't find a next item to play."

How do I post my log file? I am drooling over having this work with XBMC but sadly have not yet had the pleasure.
#81
Hey all, sorry about the problems, been a bit busy lately but I'll have a look into it real soon.
#82
Looking forward to it - this plugin is really the only missing link I got left on my XBMC setup now Smile
Image
#83
+1 - Between this and Pandora I think all my music needs for XBMC are covered.
#84
Hi all, unfortunately it looks like Rdio have changed the way their rtmp streams work again Sad It's gonna take a bit of time to figure it out, hopefully will have time to look this weekend. Sorry for the inconvenience!
#85
Crossing my fingers as I luuuuuv my Rdio account, am just missing it at XBMC.
Image
#86
Any news?
#87
Hey all, unfortunately still not looking good at this stage.

Like most music streaming sites, Rdio uses flash to stream their music. They have a little flash player that communicates with their server to get the playback info (eg: URL to stream from), then it streams the music using RTMP. The XBMC Rdio plugin effectively simulates this flash player, first asking the server for the playback info then telling XBMC where the RTMP stream is.

However, it seems Rdio are making a concerted effort to prevent people using these RTMP streams outside of their own flash player. For example, when this plugin broke a few weeks ago, it was because they had introduced a "secret key" that was calculated in the flash player from some magic constants. I managed to figure that one out, but this new measure looks a bit trickier. It seems they're now generating a token on the server side and using that to somehow validate the stream, and I think that is what's causing the XMBC playback to fail (I haven't worked out the exact mechanics yet).

Don't give up hope though, I'm still working on it (I miss my Rdio on XBMC too!). The long term solution is probably to use their HTML5 streaming API, but this has not yet been released to the general public unfortunately.
#88
Thanks for the update ampedandwired. We all appreciate your efforts and understand the associated difficulties. If there's anything we can do to help out in the process, please let us know.

Seems like they want people to develop apps using Rdio, but want it to be difficult.
#89
(2012-08-07, 01:22)ampedandwired Wrote: Hey all, unfortunately still not looking good at this stage.

Like most music streaming sites, Rdio uses flash to stream their music. They have a little flash player that communicates with their server to get the playback info (eg: URL to stream from), then it streams the music using RTMP. The XBMC Rdio plugin effectively simulates this flash player, first asking the server for the playback info then telling XBMC where the RTMP stream is.

However, it seems Rdio are making a concerted effort to prevent people using these RTMP streams outside of their own flash player. For example, when this plugin broke a few weeks ago, it was because they had introduced a "secret key" that was calculated in the flash player from some magic constants. I managed to figure that one out, but this new measure looks a bit trickier. It seems they're now generating a token on the server side and using that to somehow validate the stream, and I think that is what's causing the XMBC playback to fail (I haven't worked out the exact mechanics yet).

Don't give up hope though, I'm still working on it (I miss my Rdio on XBMC too!). The long term solution is probably to use their HTML5 streaming API, but this has not yet been released to the general public unfortunately.

Hi,
I think I have been able to make this plugin runs again.

in rdioxbmc.py you need create the amf client with a cookie:

Code:
def resolve_playback_url(self, key):
    svc = RemotingService(self._AMF_ENDPOINT)
    
    svc.addHTTPHeader('Cookie', 'r=LONGSTRING.................................................')
    svc.addHTTPHeader('Host', 'www.rdio.com')

    rdio_svc = svc.getService('rdio'

For testing, you can obtain the "r" cookie from your navigator when visit rdio.com.

Please, test if it works for you. Then, you should modify your plugin to obtain this cookie automatically. Maybe when user authenticate/reauthenticate.

There are other improvements like adding swfUrl and swfVfy keys to rtmp_info or addind user_agent and referer when calling RemotingService() but not required at this point.

Regards.

#90
I am not sure im doing it right but I am gonna try this. Can I paste that basically anywhere in the rdioxbmc.py file?
  • 1
  • 4
  • 5
  • 6(current)
  • 7
  • 8
  • 28

Logout Mark Read Team Forum Stats Members Help
[RELEASE] Rdio Music Addon2