I have left the code here on the off chance that someone may find it useful someday.
ampedandwired / rdio-xbmc Goto Github PK
View Code? Open in Web Editor NEWA Kodi plugin for Rdio
License: GNU General Public License v3.0
A Kodi plugin for Rdio
License: GNU General Public License v3.0
Is it possible to integrate the musics on rdio favorites/library into Kodi Library ?
I think this is a good feature, especially on RPI machines, that take too long to load the library from rdio web site.
If i not mistaken the guys on netflixbmc made something similar (add to library function).
You can see it here: http://forum.kodi.tv/showthread.php?tid=211574
I would like to give my compliments, the addon is really stable and very usable !
Thank you.
I can navigate my rdio content, but after the 'opening stream' dialog, a 'Playback Failed' dialog appears.
I believe the debug log error is this one:
11:59:01 T:140123263924096 ERROR: CAudioDecoder: Unable to Init Codec while loading file rtmpe://fms.25AC.edgecastcdn.net:1935/8025AC/media.rd.io app=8025AC/media.rd.io playpath=mp3:s/music/5/2/6/6/5266a7cf003e4ffd99c5568282ff2d62/full-192?80e2d2f4276a71565175a1c15d3f54afa75b3b2c9d58dd8727a70e9b1d66b186aeb9a7cb0b94fe228dd92fa289d348d9c9e137eee38cf70d7f76a331ba60bd654be8481a1fbd2ac62409835022becb2ff78c1216d093cd1202f25e94b4df3d9bc7cdb99ff4e5a711d4c114360095ab8eabed19720ceb5fcf4416912634
11:59:01 T:140123263924096 WARNING: PAPlayer::QueueNextFileEx - Failed to create the decoder
When i use the plugin menu in Kodi and select an album, after a click on the song it's getting played and all other songs from the album getting queued. But when i use the plugin via the Yatse remote, only the one song i clicked on gets played. Also, not the actual song title but 0.full-192? is getting displayed as song title while playback.
Rdio: 1.14.1
Kodi: 14.2
Yatse: 5.1.0
Two days ago rdio has suddenly stopped working (Ubuntu 14.04/XBMC13). I don't think this is related to the auth issues in the README as I am a) not new and b) haven't reauthenticated. As well, I've checked my api account and I'm active. Upon using any option, the logs show this:
10:01:04 T:140113053824768 NOTICE: Rdio: Executing Rdio 1.11.0 addon operation albums_in_collection with params {'mode': 'albums_in_collection'}
10:01:04 T:140113053824768 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <class 'rdioapi.RdioProtocolException'>
Error Contents: RdioProtocolException 403:
Check the rdio api logs shows the usage instantly stopping on the 24th of Sept
Debug log:
https://dl.dropbox.com/u/2813860/xbmc.log
A description of how to reproduce the bug:
Try to login. All i could say, really.
XBMC Version: 11.0 "Eden"
Platform: Windows
Bug description:
Here's what I've done since I've come across this add-on for XBMC. I've registered for a Rdio developer's account, got an API key, installed the rdio-xbmc add-on by downloading this repository into a zip and installing it in XBMC, open the Rdio add-on and put in the API keys in the settings as well as my Rdio account username and password (I've tried both my regular Rdio account username, and my new Rdio developer account username, and password which is the same for both accounts) and it keeps telling me to check the username in the plugin settings. I've made sure that's it's indeed the username (rdio.com/people/username) and not the email address I've used for both accounts, and It still won't let me login. I am certain that it's not a typo as I just signed out of my regular Rdio account online and successfully logged back in with the username and password I put into XBMC. After being at this for about an hour, i'd figured it's time to open an issue on here to see if I am doing something wrong or if this is a genuine bug. But basically, it keeps messaging me to check my username which I am certain is right as well as my password. I've even changed my username a few times to see if that would work and still, nothing.
Hi,
the version 1.10.0 doesn't actual work with Gotham. Is it planned to do so!?
Thanx
Efty
Hi,
I'm currently experiencing an issue with this plugin - no audio output.
I'm attempting to use a USB DAC as well for the audio output which perhaps is interplaying with the issue, although, I can get sound to play from other audio apps.
I can't find the error anywhere in the source so I can only assume it's an external problem relating perhaps to librtmp, I hate to be a burden but I thought that perhaps this issue could be resolved quicker by someone more familiar with the code.
Any help with this would be much appreciated, I'm happy to provide any further logs or analysis required to debug this issue. I've included a relevant segment from my xbmc.log file below and the output of a check rtmp version command.
Thanks,
--Frank
00:53:55 T:2902606912 NOTICE: Rdio: Executing Rdio 1.11.0 addon operation play with params {'play': 'True', 'mode': 'play', 'key': 't3549786'}
00:53:55 T:2902606912 NOTICE: Rdio: Resolving rtmp playback url for t3549786 using flash
00:53:55 T:2902606912 NOTICE: Rdio: Using user agent 'Mozilla/5.0 (Linux i686; rv:7.0) Gecko/20110811 Firefox/7.0'
00:53:57 T:2902606912 NOTICE: Rdio: Executed Rdio addon operation play in 599 ms
00:53:57 T:3036643984 NOTICE: COMXPlayer: Opening: rtmpe://cp102543.edgefcs.net:1935/ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio app=ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio playpath=mp3:s/music/6/e/2/c/6e2c6432fdb84795865c5b1ea0c2601a/full-192
00:53:57 T:3036643984 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
00:53:57 T:2902606912 NOTICE: Thread OMXPlayer start, auto delete: false
00:53:57 T:2902606912 NOTICE: Creating InputStream
00:53:57 T:2902606912 WARNING: HandShake: Type mismatch: client sent 6, server answered 9
00:53:59 T:2902606912 NOTICE: Creating Demuxer
00:53:59 T:2902606912 NOTICE: Opening audio stream: 0 source: 256
00:53:59 T:2902606912 NOTICE: Creating audio thread
00:53:59 T:2831602752 NOTICE: Thread OMXPlayerAudio start, auto delete: false
00:53:59 T:2902606912 WARNING: CDVDMessageQueue(video)::Put MSGQ_NOT_INITIALIZED
00:53:59 T:2902606912 NOTICE: OMXClock using audio as reference
00:54:01 T:2822161472 WARNING: Create - Unsupported protocol(rtmpe) in rtmpe://cp102543.edgefcs.net:1935/ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio app=ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio playpath=mp3:s/music/6/e/2/c/6e2c6432fdb84795865c5b1ea0c2601a/full-192/
00:54:01 T:2822161472 ERROR: Exists - Error checking for rtmpe://cp102543.edgefcs.net:1935/ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio app=ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio playpath=mp3:s/music/6/e/2/c/6e2c6432fdb84795865c5b1ea0c2601a/full-192
00:54:03 T:2822161472 WARNING: Create - Unsupported protocol(rtmpe) in rtmpe://cp102543.edgefcs.net:1935/ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio app=ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio playpath=mp3:s/music/6/e/2/c/6e2c6432fdb84795865c5b1ea0c2601a/full-192/
00:54:03 T:2822161472 ERROR: Exists - Error checking for rtmpe://cp102543.edgefcs.net:1935/ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio app=ondemand?auth=daCcUakdVdYand6ccc5b2aNdOblaDdXaqaN-bubqCu-O-6mrA&aifp=rdio playpath=mp3:s/music/6/e/2/c/6e2c6432fdb84795865c5b1ea0c2601a/full-192
... same warning/error repeated many times
pi@raspbmc:~$ dpkg -s librtmp0 | grep -i version
Version: 2.4+20111222.git4e06e21-1
Hello, would be great if rdio-xbmc could support rdio profiles on family accounts, since each profile has his own library.
Thanks again.
At the moment if I want to queue up an entire album I have to go into the album and queue each song item individually. If I attempt to select an album and then select 'Queue Item' the loading spinner just sits there forever and eventually XBMC may crash.
I am assuming this is due to the 'More from this artist...' item existing in the album song list which XBMC is attempting to add to the queue which then results in a recursive loop.
It would also be nice to be able to queue up all songs in my collection from a particular artist, but I am assuming the 'Play collection radio station from this artists' may also cause a similar issue.
Playback of multiple tracks triggers "opening stream" between tracks.
Regarding the Raspberry Pi running RaspBMC, it makes 'popping' sound between all tracks.
13:22:24 T:140015721903872 NOTICE: /home/charles/.xbmc/userdata/addon_data/plugin.audio.rdio/
13:22:24 T:140015721903872 DEBUG: Rdio: Loaded persistent auth state
13:22:24 T:140015721903872 NOTICE: Rdio: Executing Rdio 1.11.0 addon operation artist with params {'mode': 'artist', 'key': 'r175738'}
13:22:24 T:140015721903872 DEBUG: LocalizeStrings: no strings.po file exist at /home/charles/.xbmc/addons/plugin.audio.rdio/resources/language/English, fallback to strings.xml
13:22:24 T:140015721903872 DEBUG: Rdio: adding item: Top Albums - plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738
13:22:24 T:140015721903872 DEBUG: Rdio: adding item: Top Tracks - plugin://plugin.audio.rdio/?mode=tracks_for_artist&key=r175738
13:22:24 T:140015721903872 DEBUG: Rdio: adding item: All Albums - plugin://plugin.audio.rdio/?mode=all_albums_for_artist&key=r175738
13:22:24 T:140015721903872 DEBUG: Rdio: adding item: Related Artists - plugin://plugin.audio.rdio/?mode=related_artists&key=r175738
13:22:24 T:140015721903872 DEBUG: Rdio: adding item: Play radio station for this artist - plugin://plugin.audio.rdio/?mode=play_artist_radio&key=r175738
13:22:24 T:140015721903872 NOTICE: Rdio: Executed Rdio addon operation artist in 1 ms
13:22:24 T:140016008513280 DEBUG: WaitOnScriptResult- plugin returned successfully
13:22:24 T:140015721903872 INFO: CPythonInvoker(1426, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): script successfully run
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016416270272 DEBUG: Loading items: 10, directory: plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738 sort method: 0, ascending: false
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=tracks&key=a594784)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016416270272 DEBUG: Loading items: 20, directory: plugin://plugin.audio.rdio/?mode=tracks&key=a594784 sort method: 0, ascending: false
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=artist&key=r175738)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016008513280 DEBUG: StartScript - calling plugin Rdio('plugin://plugin.audio.rdio/','1424','?mode=artist&key=r175738')
13:22:24 T:140016008513280 DEBUG: WaitOnScriptResult - waiting on the Rdio (id=1427) plugin...
13:22:24 T:140015730296576 NOTICE: Thread LanguageInvoker start, auto delete: false
13:22:24 T:140015730296576 INFO: initializing python engine.
13:22:24 T:140015730296576 DEBUG: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): start processing
13:22:24 T:140015721903872 INFO: Python script stopped
13:22:24 T:140015721903872 DEBUG: Thread LanguageInvoker 140015721903872 terminating
13:22:24 T:140015730296576 NOTICE: -->Python Interpreter Initialized<--
13:22:24 T:140015730296576 DEBUG: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): the source file to load is "/home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py"
13:22:24 T:140015730296576 DEBUG: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): setting the Python path to /home/charles/.xbmc/addons/plugin.audio.rdio:/home/charles/.xbmc/addons/script.module.t0mm0.common/lib:/home/charles/.xbmc/addons/script.module.simplejson/lib:/usr/share/xbmc/addons/script.module.pil/lib:/usr/share/xbmc/addons/xbmc.debug/:/home/charles/.xbmc/addons/script.module.parsedom/lib:/usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PILcompat:/usr/lib/python2.7/dist-packages/gtk-2.0:/usr/lib/python2.7/dist-packages/ubuntu-sso-client
13:22:24 T:140015730296576 DEBUG: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): entering source directory /home/charles/.xbmc/addons/plugin.audio.rdio
13:22:24 T:140015730296576 DEBUG: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): instantiating addon using automatically obtained id of "plugin.audio.rdio" dependent on version 2.1.0 of the xbmc.python api
13:22:24 T:140015730296576 NOTICE: /home/charles/.xbmc/userdata/addon_data/plugin.audio.rdio/
13:22:24 T:140015730296576 DEBUG: Rdio: Loaded persistent auth state
13:22:24 T:140015730296576 NOTICE: Rdio: Executing Rdio 1.11.0 addon operation artist with params {'mode': 'artist', 'key': 'r175738'}
13:22:24 T:140015730296576 DEBUG: LocalizeStrings: no strings.po file exist at /home/charles/.xbmc/addons/plugin.audio.rdio/resources/language/English, fallback to strings.xml
13:22:24 T:140015730296576 DEBUG: Rdio: adding item: Top Albums - plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738
13:22:24 T:140015730296576 DEBUG: Rdio: adding item: Top Tracks - plugin://plugin.audio.rdio/?mode=tracks_for_artist&key=r175738
13:22:24 T:140015730296576 DEBUG: Rdio: adding item: All Albums - plugin://plugin.audio.rdio/?mode=all_albums_for_artist&key=r175738
13:22:24 T:140015730296576 DEBUG: Rdio: adding item: Related Artists - plugin://plugin.audio.rdio/?mode=related_artists&key=r175738
13:22:24 T:140015730296576 DEBUG: Rdio: adding item: Play radio station for this artist - plugin://plugin.audio.rdio/?mode=play_artist_radio&key=r175738
13:22:24 T:140015730296576 NOTICE: Rdio: Executed Rdio addon operation artist in 1 ms
13:22:24 T:140016008513280 DEBUG: WaitOnScriptResult- plugin returned successfully
13:22:24 T:140015730296576 INFO: CPythonInvoker(1427, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): script successfully run
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016416270272 DEBUG: Loading items: 10, directory: plugin://plugin.audio.rdio/?mode=top_albums_for_artist&key=r175738 sort method: 0, ascending: false
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=tracks&key=a594784)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016416270272 DEBUG: Loading items: 20, directory: plugin://plugin.audio.rdio/?mode=tracks&key=a594784 sort method: 0, ascending: false
13:22:24 T:140016416270272 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.rdio/?mode=artist&key=r175738)
13:22:24 T:140016416270272 DEBUG: ParentPath = [plugin://plugin.audio.rdio/?mode=albums_in_collection]
13:22:24 T:140016008513280 DEBUG: StartScript - calling plugin Rdio('plugin://plugin.audio.rdio/','1425','?mode=artist&key=r175738')
13:22:24 T:140016008513280 DEBUG: WaitOnScriptResult - waiting on the Rdio (id=1428) plugin...
13:22:24 T:140015721903872 NOTICE: Thread LanguageInvoker start, auto delete: false
13:22:24 T:140015721903872 INFO: initializing python engine.
13:22:24 T:140015721903872 DEBUG: CPythonInvoker(1428, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): start processing
13:22:24 T:140015730296576 INFO: Python script stopped
13:22:24 T:140015730296576 DEBUG: Thread LanguageInvoker 140015730296576 terminating
13:22:24 T:140015721903872 NOTICE: -->Python Interpreter Initialized<--
13:22:24 T:140015721903872 DEBUG: CPythonInvoker(1428, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): the source file to load is "/home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py"
13:22:24 T:140015721903872 DEBUG: CPythonInvoker(1428, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): setting the Python path to /home/charles/.xbmc/addons/plugin.audio.rdio:/home/charles/.xbmc/addons/script.module.t0mm0.common/lib:/home/charles/.xbmc/addons/script.module.simplejson/lib:/usr/share/xbmc/addons/script.module.pil/lib:/usr/share/xbmc/addons/xbmc.debug/:/home/charles/.xbmc/addons/script.module.parsedom/lib:/usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PILcompat:/usr/lib/python2.7/dist-packages/gtk-2.0:/usr/lib/python2.7/dist-packages/ubuntu-sso-client
13:22:24 T:140015721903872 DEBUG: CPythonInvoker(1428, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): entering source directory /home/charles/.xbmc/addons/plugin.audio.rdio
13:22:24 T:140015721903872 DEBUG: CPythonInvoker(1428, /home/charles/.xbmc/addons/plugin.audio.rdio/rdioplugin.py): instantiating addon using automatically obtained id of "plugin.audio.rdio" dependent on version 2.1.0 of the xbmc.python api
13:22:24 T:140015721903872 NOTICE: /home/charles/.xbmc/userdata/addon_data/plugin.audio.rdio/
13:22:24 T:140015721903872 DEBUG: Rdio: Loaded persistent auth state
13:22:24 T:140015721903872 NOTICE: Rdio: Executing Rdio 1.11.0 addon operation artist with params {'mode': 'artist', 'key': 'r175738'}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.