Kodi Community Forum
[WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Discussions (https://forum.kodi.tv/forumdisplay.php?fid=222)
+--- Forum: Kodi related discussions (https://forum.kodi.tv/forumdisplay.php?fid=6)
+--- Thread: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) (/showthread.php?tid=67012)



- akezeke - 2011-07-05

promontis Wrote:Great! I was already looking at that branch, but couldn't find them, as I was looking in the addons directory. Sometimes a bit confusing, such a large project structure

EDIT: people wanting to use the PVR need to build it right? If so, isn't that the same what you are doing? I thought they were working on a *downloadable* binary addon system.

Now yes, but the branch is supposed to be merged with master later, and when the system is in place pvr-clients can be developed and loaded on the fly without any compiling for the users just like the python addons.


- oBey - 2011-07-05

Jackdaw Wrote:Did you use the unstable repository? I have found the xbmc-live script there to be buggy. I used the stable repository to install xbmc before overinstalling the spotify version.
If you have done this then:

sudo apt-get install ppa-purge
sudo ppa-purge ppa:team-xbmc/unstable

Then add the stable repository, sudo apt-get update, reinstall all the xbmc packages in the instructions and then "sudo make install prefix=/usr"
EDIT: Also disable the xbmc repo afterwards so that you don't upgrade over the spotify build

Also, I found that Lucid was still the best base for an XBMCbuntu minimal install when combined with:
The latest Alsa drivers http://xbmcmediacenter.com/alsa-drivers-linux-always-updated/
and more up to date video dirvers: http://xbmcmediacenter.com/linux-nvidia-drivers-always-updated/
I had no end of problems with Natty.


I made a complete new install (Lucid) installed xbmc, nvidia drivers, alsa, xbmc-live and normal XBMC worked fine. Then followed the spotyxbmc readme. Used "sudo make install prefix=/usr" instead of sudo make instal. But still getting a black screen when rebooting my machine. I cant understand what i can have missed.

If i remove xbmc-live i can start spotyxbmc with "xinit xbmc-standalone", but not when xbmc-live is installed.

Anyone got a clue were to start?


- mortstar - 2011-07-06

Got your fork compiled akezeke. XBMC fails to load with an fatal application error on 32bit Win XP Virtual Machine. But on my 64bit Win 7 it loads fine. Spotify working pretty well, with a bit of missing metadata etc.

The new direction you're talking about with promontis could be one of the greatest updates to XBMC in a while, certainly to the music section.

It may be worth making a new thread on the development section of the forum with links to your current work and your thoughts on the future of an integrated music section for XBMC. You may attract some other talented coders there and also the attention/aide of Team XBMC members.


- marksutherland - 2011-07-06

akezeke Wrote:One thing I can think of is that you provide a non legit cache path, that will stop the library from init (shouldn't crash xbmc though). Try to change it to something you are sure that your user have write permission in.

Yeah, that's exactly what it was, thanks!

However, it doesn't seem to be logging in correctly now. The playlists screen lists each playlist as "Loading playlist..." and in the log file I see this sort of thing:

20:28:00 T:9959216 M:1914499072 NOTICE: Spotifylog: logging in
20:28:00 T:9959216 M:1914499072 NOTICE: Spotifylog: 19:28:00.710 I [offline_authorizer.cpp:170] Unable to login offline: no such user
20:28:00 T:9959216 M:1914499072 INFO: removing tempfiles
20:28:00 T:55266160 M:1914499072 NOTICE: Spotifylog: 19:28:00.719 I [ap:1372] Connecting to AP ap.spotify.com:4070

20:41:58 T:100285296 M:1920471040 NOTICE: Spotifylog: 19:41:58.269 I [ap:922] Connected to AP: 78.31.8.42:4070
20:41:58 T:43977584 M:1917804544 DEBUG: DoWork - took 131 ms to load special://skin/backgrounds/videos.jpg
20:41:58 T:102491952 M:1921359872 ERROR: Spotifylog: connection to Spotify failed: No error
20:41:58 T:44309360 M:1921232896 DEBUG: Got rss feed: http://feeds.feedburner.com/xbmc
20:41:58 T:44309360 M:1921105920 DEBUG: RSS feed encoding: UTF-8
20:41:58 T:44309360 M:1921105920 DEBUG: Parsed rss feed: http://feeds.feedburner.com/xbmc
20:41:58 T:44309360 M:1921105920 DEBUG: Thread CRssReader 44309360 terminating
20:41:58 T:102491952 M:1921105920 DEBUG: Spotifylog: playlist container loaded

Any idea what might be up? I can stream music, so it's definitely managing to create some kind of connection. Thanks for your help!


- akezeke - 2011-07-09

Posted a suggestion for a unified music addon frontend here!

Please join the discussion if you have any additional suggestions of how it should work.

marksutherland Wrote:Yeah, that's exactly what it was, thanks!

However, it doesn't seem to be logging in correctly now. The playlists screen lists each playlist as "Loading playlist..." and in the log file I see this sort of thing:

20:28:00 T:9959216 M:1914499072 NOTICE: Spotifylog: logging in
20:28:00 T:9959216 M:1914499072 NOTICE: Spotifylog: 19:28:00.710 I [offline_authorizer.cpp:170] Unable to login offline: no such user
20:28:00 T:9959216 M:1914499072 INFO: removing tempfiles
20:28:00 T:55266160 M:1914499072 NOTICE: Spotifylog: 19:28:00.719 I [ap:1372] Connecting to AP ap.spotify.com:4070

20:41:58 T:100285296 M:1920471040 NOTICE: Spotifylog: 19:41:58.269 I [ap:922] Connected to AP: 78.31.8.42:4070
20:41:58 T:43977584 M:1917804544 DEBUG: DoWork - took 131 ms to load special://skin/backgrounds/videos.jpg
20:41:58 T:102491952 M:1921359872 ERROR: Spotifylog: connection to Spotify failed: No error
20:41:58 T:44309360 M:1921232896 DEBUG: Got rss feed: http://feeds.feedburner.com/xbmc
20:41:58 T:44309360 M:1921105920 DEBUG: RSS feed encoding: UTF-8
20:41:58 T:44309360 M:1921105920 DEBUG: Parsed rss feed: http://feeds.feedburner.com/xbmc
20:41:58 T:44309360 M:1921105920 DEBUG: Thread CRssReader 44309360 terminating
20:41:58 T:102491952 M:1921105920 DEBUG: Spotifylog: playlist container loaded

Any idea what might be up? I can stream music, so it's definitely managing to create some kind of connection. Thanks for your help!

The logging in is somewhat weird sometimes, but a few errors is ok if it is able to log in eventually, The playlist error is something I'm still looking at.

/David


- akezeke - 2011-07-11

mortstar Wrote:Got your fork compiled akezeke. XBMC fails to load with an fatal application error on 32bit Win XP Virtual Machine. But on my 64bit Win 7 it loads fine. Spotify working pretty well, with a bit of missing metadata etc.

The new direction you're talking about with promontis could be one of the greatest updates to XBMC in a while, certainly to the music section.

It may be worth making a new thread on the development section of the forum with links to your current work and your thoughts on the future of an integrated music section for XBMC. You may attract some other talented coders there and also the attention/aide of Team XBMC members.

Glad you have got it working, the missing metadata is because of the way libspotify provides the data, you can say that libspotify provides most of the data "one level to deep" for how we use it in XBMC. For instance the artist art is not available until you browse the artist for albums and the album details is not visible until you browse that albums for its tracks.

It could be solved by loading all albums currently listen in the background and update the view as the data loads, but it is not done now, maybe later Smile

/David


- neoflex - 2011-07-14

http://www.spotify.com/us/blog/archives/2011/07/14/hello-america-spotify-here/

Spotify is now launched in the US!


- akezeke - 2011-07-15

The failing playlists have now been fixed! (I really hope this time)

Turns out there was some new settings introduced with the newer api versions that allowed the user to set playlists not to be loaded in ram. And when not set manually, they where loaded sometimes and sometimes not Rofl

/David


- 1947 - 2011-07-15

I've been fooling around with this for a while now and I must say, great work Smile. I've also found some bugs you might or might not know about: one is that updating the audio library removes all saved spotify-albums. Another minor bug is that saving an album doesn't save the album's/track's year (this one was easy to fix though, just two/three lines).

Greetings from Linköping Wink


- akezeke - 2011-07-16

@1947

Tjenare, glad to hear that you got it running. There are quite a few bugs still in there but the library cleaning bug is fixed, are you sure you are running the latest version from here?

The years missing you say Smile yeah I see that they are not there, never noticed. If you want you can do a pull request to the repo and I'll add it.

I'm not very active on this, a new total rewritten version is in the works, you can follow the discussion here.

/David


- dallasnights - 2011-07-16

where can i find the plugin version of spotify that works on XBMC on ATV2

Thanks all


- Jackdaw - 2011-07-19

Unfortunately the new version is crashing for me (Lucid 64 bit minimal install.) This happened as soon as I had finished the configuration screen settings. The cache setting is correct. The previous version before it became an add on worked fine. I can't work out
Here is the relevant part of my crash log:
23:28:34 T:140267043583936 M:2943758336 DEBUG: ExecuteXBMCAction : Translating ActivateWindow(MusicLibrary,Addons,return)
23:28:34 T:140267043583936 M:2943758336 DEBUG: ExecuteXBMCAction : To ActivateWindow(MusicLibrary,Addons,return)
23:28:34 T:140267043583936 M:2943758336 DEBUG: Activating window ID: 10502
23:28:34 T:140267043583936 M:2943758336 DEBUG: ------ Window Deinit (Home.xml) ------
23:28:34 T:140267043583936 M:2943508480 DEBUG: Adding spotify share
23:28:34 T:140267043583936 M:2943508480 DEBUG: ------ Window Init (MyMusicNav.xml) ------
23:28:34 T:140267043583936 M:2943508480 INFO: Loading skin file: MyMusicNav.xml
23:28:34 T:140267043583936 M:2941476864 DEBUG: Adding spotify share
23:28:34 T:140267043583936 M:2941476864 DEBUG: Load MyMusicNav.xml: 157.26ms
23:28:34 T:140267043583936 M:2941476864 DEBUG: Alloc resources: 164.09ms (160.44 ms skin load)
23:28:34 T:140267043583936 M:2941476864 DEBUG: CGUIMediaWindow::GetDirectory (addons://sources/audio/)
23:28:34 T:140267043583936 M:2941476864 DEBUG: ParentPath = [addons://sources/audio/]
23:28:34 T:140267043583936 M:2941476864 WARNING: GetLabel - Unknown nodetype requested 0
23:28:35 T:140267043583936 M:2943770624 DEBUG: SDLKeyboard: scancode: 74, sym: 0112, unicode: 0000, modifier: 0
23:28:35 T:140267043583936 M:2943770624 DEBUG: OnKey: down (f028) pressed, action is Down
23:28:35 T:140266772084480 M:2943770624 INFO: msg: PICTURE::LoadImage: Unable to open image: special://masterprofile/Thumbnails/f/fc1ecf1e.png Error: (2)
23:28:35 T:140266772084480 M:2943770624 ERROR: Texture manager unable to load file: special://masterprofile/Thumbnails/f/fc1ecf1e.png
23:28:35 T:140267043583936 M:2943770624 DEBUG: SDLKeyboard: scancode: 74, sym: 0112, unicode: 0000, modifier: 0
23:28:35 T:140267043583936 M:2943770624 DEBUG: OnKey: down (f028) pressed, action is Down
23:28:36 T:140267043583936 M:2943807488 DEBUG: SDLKeyboard: scancode: 24, sym: 000d, unicode: 000d, modifier: 0
23:28:36 T:140267043583936 M:2943807488 DEBUG: OnKey: return (f00d) pressed, action is Select
23:28:36 T:140267043583936 M:2943807488 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.music.spotyXBMC/)
23:28:36 T:140267043583936 M:2943807488 DEBUG: ParentPath = [addons://sources/audio/]
23:28:36 T:140266772084480 M:2943807488 DEBUG: StartScript - calling plugin spotyXBMC('plugin://plugin.music.spotyXBMC/','0','')
23:28:36 T:140266772084480 M:2943807488 INFO: initializing python engine.
23:28:36 T:140266772084480 M:2943807488 DEBUG: new python thread created. id=1
23:28:36 T:140266772084480 M:2943807488 DEBUG: WaitOnScriptResult - waiting on the spotyXBMC plugin...
23:28:36 T:140266613647104 M:2943807488 DEBUG: Thread XBPyThread start, auto delete: 0
23:28:36 T:140266613647104 M:2943807488 DEBUG: Python thread: start processing
23:28:36 T:140266613647104 M:2943553536 NOTICE: -->Python Interpreter Initialized<--
23:28:36 T:140266613647104 M:2943553536 DEBUG: Process - The source file to load is /usr/share/xbmc/addons/plugin.music.spotyXBMC/default.py
23:28:36 T:140266613647104 M:2943553536 DEBUG: Process - Setting the Python path to /usr/share/xbmc/addons/plugin.music.spotyXBMC:/home/xbmc/.xbmc/addons/script.module.beautifulsoup/lib:/usr/share/xbmc/addons/script.module.pil/lib:/usr/share/xbmc/addons/script.module.pysqlite/lib:/usr/lib/python2.6:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload:/usr/lib/python2.6/dist-packages:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2.6/gtk-2.0:/usr/local/lib/python2.6/dist-packages:
23:28:36 T:140266613647104 M:2943553536 DEBUG: Process - Entering source directory /usr/share/xbmc/addons/plugin.music.spotyXBMC
23:28:36 T:140266613647104 M:2943553536 DEBUG: Instantiating addon using automatically obtained id of "plugin.music.spotyXBMC" dependent on version 2.0 of the xbmc.python api
23:28:36 T:140266613647104 M:2943553536 INFO: Scriptresult: Success
23:28:36 T:140266613647104 M:2943553536 INFO: Python script stopped
23:28:36 T:140266613647104 M:2943553536 DEBUG: Thread Python Thread 140266613647104 terminating
23:28:36 T:140266772084480 M:2943553536 DEBUG: WaitOnScriptResult - plugin exited prematurely - terminating
23:28:36 T:140267043583936 M:2943553536 ERROR: GetDirectory - Error getting plugin://plugin.music.spotyXBMC/
23:28:36 T:140267043583936 M:2943553536 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.music.spotyXBMC/) failed
23:28:36 T:140267043583936 M:2943553536 DEBUG: CGUIMediaWindow::GetDirectory (addons://sources/audio/)
23:28:36 T:140267043583936 M:2943553536 DEBUG: ParentPath = []
23:28:36 T:140266631583488 M:2943553536 DEBUG: Thread Background Loader start, auto delete: 0
23:28:36 T:140266631583488 M:2943553536 DEBUG: Thread Background Loader 140266631583488 terminating
23:28:36 T:140267043583936 M:2943574016 WARNING: GetLabel - Unknown nodetype requested 0
23:28:36 T:140267043583936 M:2943574016 DEBUG: waiting for python thread 1 to stop
23:28:36 T:140267043583936 M:2943574016 DEBUG: python thread 1 destructed
23:28:36 T:140267043583936 M:2943574016 DEBUG: Activating window ID: 10502
23:28:36 T:140267043583936 M:2943574016 DEBUG: ------ Window Deinit (MyMusicNav.xml) ------
23:28:36 T:140267043583936 M:2943574016 DEBUG: Adding spotify share
23:28:36 T:140267043583936 M:2943574016 DEBUG: ------ Window Init (MyMusicNav.xml) ------
23:28:36 T:140267043583936 M:2943574016 INFO: Loading skin file: MyMusicNav.xml
23:28:37 T:140267043583936 M:2942312448 DEBUG: Adding spotify share
23:28:37 T:140267043583936 M:2942312448 DEBUG: Load MyMusicNav.xml: 149.59ms
23:28:37 T:140267043583936 M:2942312448 DEBUG: Alloc resources: 156.57ms (152.94 ms skin load)
23:28:37 T:140267043583936 M:2942312448 DEBUG: CGUIMediaWindow::GetDirectory (musicdb://spotify/menu/main/)
23:28:37 T:140267043583936 M:2942312448 DEBUG: ParentPath = [musicdb://spotify/menu/main/]
23:28:37 T:140267043583936 M:2942312448 DEBUG: Spotifylog: creating session


- iMse - 2011-07-19

I'm so glad that you´re working on this! I think it´s a must have for xbmc. Since Spotify have been around in europe for so long (end even longer in sweden) people doesnt really have that big of a music collection anymore. It´s all Spotify these days (atleast for me and the people I know).

Keep up the excellent work! Smile


- The-Boxhead - 2011-07-24

akezeke Wrote:It seems that libspotify didn't get installed correctly. Try to reinstall it and also try to install to an other path with prefix=...

I tryed the instructions on a natty 64 and it works, don't know if anything is different with maverick.

I have just tried to make this work on my minimal lucid live install.

A couple of pitfalls i found:

When installing dependencies it fails due to the autopoint entry. As far as i see this package is not possible to install on my ubuntu lucid. Also because this fails it doesent install some of the other required dependencies so remove the autopoint entry from that line and you should be good.

Second problem was related to libspotify. After several atempts
i found in this thread a guy who installed libspotify with the following command:
sudo make install prefix=/usr/
Voila the build went on without errors Wink


- The-Boxhead - 2011-07-24

So my new shiny spotified xbmc starts up fine.

However it seems to crash 90% of the time if i try to start
the spotify addon trough the music/addon browser. If i instead
go into the music library and choose spotify from there
it seems not to crash at all and i can do search and play songs
trough the top lists etc.

However if i try to enter any of my own playlists xbmc crashes and restarts
100% of the time.

This is my crashlog:
http://pastebin.com/7pgmHnHv

I'm gonna do some more research...