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)



- RockerC - 2011-07-05

promontis Wrote:Anyhow, your implementation is based on adding your own directory structure, which is very hard to maintain if more "native" addons are being added (for example, I am also working on a native youtube browser, and an integrated IMDB browser which links to usenet/sabnzbd). When I started I was doing the same as you, adding directories, now I am actually integrating them in the already existing directories. So, for example, music > search is now searching the local library, as well as spotify and youtube. Music > playlists now returns local, spotify and youtube playlists. And so forth.

Actually, the user shouldn't need to know where the music is hosted (he now does, even in my implementation, by a [spotify] or [youtube] prefix).
From an end-users perspetive a universal search concept like that would be awesome, and that user experince actually sounds kind-of what has already been done for the Boxee Box, with all different type of online and local sources aggregated through one common interface.

Hope that you all can cooperate to achive something similar for XBMC that we all can use someday Smile


- akezeke - 2011-07-05

@marksutherland
There is a problem with the lib for sure, but if it compiled it is installed and found. Don't know if there is a problem with the 32 bit lib. Anyone else got it working on 32 bit natty system?

@promontis
Your project sounds very interesting indeed, I have never thought of it like that but it make sense to make it even more integrated with xbmcs native music library. I would like to take a look at your code and maybe we should merge our projects.

The only drawback I see is that the model we are using now, download alternative source, is not the future. I lot of potential users have problems getting it to work.

I am actually now looking at the possibility to create a python addon instead. There are a lot of obstacles to get it working but everything is possible right Smile

The status of it now is that it loads, logs in, lists playlists and tracks and I'm now working on the actual playing of music. I still have not solved how to do it, one way might be to create a temporary wav file on the drive and fill it with data as music_delivery is called and let xbmc play it at the same time... Dont know if itś possible.

I will update you all when I have investigated it further.

/David


- promontis - 2011-07-05

@atezeke I've build and run your code yesterday evening... it works with the exception of playlists... it keeps loading. Had this in my build too, switching to 0.06 solved it for me. I do have one local (offline) file, so perhaps removing that one would fix it (will try that this afternoon). Have you managed to actually use local (offline) files?

I've mixed feelings on the way to implement new functionality... I don't like Python, so I am tempted to use c++. We have the option to change everything in c++ plus the UI does feel a lot more responsive... some addons are really really slow, while the spotify UI is blazing fast! Some goes for my youtube UI.

There is however progress in adding better addon support, even for other languages than python. Also, there is the option to run addons in a seperate thread and to include 3rd party assemblies (like libspotify) See: https://github.com/jimfcarroll/xbmc/tree/swig-addons


- Jackdaw - 2011-07-05

Quote:i tried this now but no autostart. I am able to start xbmc (with spotify) with this command "xinit xbmc-standalone" as stated in http://wiki.xbmc.org/?title=XBMCbunt..._ATI.2FAMD_GPU but when i install xbmc-live the screen just goes black and im not able to start xbmc (with spotify) anymore.

what might i be doing wrong?

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.


- akezeke - 2011-07-05

marksutherland Wrote:Hi,

I've been able to build and install libspotify 0.0.8 and the latest version spotyxbmc, but it seems to be having difficulty connecting to spotify. I'm building on a 32bit natty ubuntu system.

I was able to set up my username and password, but as soon as I try to open up the add-on xbmc crashes. Here's some interesting excepts from the log:

21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean search
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean search2
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean artistbrowse
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean albumbrowse
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean toplists
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean removing files
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: clean done
21:22:48 T:15554352 M:1921728512 DEBUG: Spotifylog: creating session
21:22:48 T:15554352 M:1921458176 ERROR: Spotifylog: failed to create session: error: Initialization of library failed
21:22:48 T:15554352 M:1921458176 INFO: removing tempfiles
21:22:48 T:15554352 M:1921458176 DEBUG: ADDON: Starting service addons.
21:22:48 T:15554352 M:1921458176 NOTICE: initialize done

and later on at the crash:

21:22:54 T:15554352 M:1916682240 DEBUG: CGUIMediaWindow::GetDirectory (musicdb://spotify/menu/main/)
21:22:54 T:15554352 M:1916682240 DEBUG: ParentPath = [musicdb://spotify/menu/main/]
21:22:54 T:15554352 M:1916682240 DEBUG: Spotifylog: creating session

Looking through the thread, I see this sometimes means I'm either using the wrong version of the library, or the wrong username and password. I've checked all of these things several times and it all seems to be right. Is there any way to get more information about why the library is failing to initialize or otherwise debug this problem? Thanks for any help,

Mark

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.


- mortstar - 2011-07-05

Just wanted to clarify something....this build isn't currently able to play the music within XBMC?

Great to see some active development on this Smile


- akezeke - 2011-07-05

mortstar Wrote:Just wanted to clarify something....this build isn't currently able to play the music within XBMC?

Great to see some active development on this Smile


Of course it is able to play the music, what would the point be with it if not? Smile

/David


- mortstar - 2011-07-05

akezeke Wrote:Of course it is able to play the music, what would the point be with it if not? Smile

/David

:o I was confused by your post #347. I have just re-read the last paragraph and realised that the 'none playing of music' is the current status of the python addon.

I tried compiling on Windows XP but having a problem with some build dependencies. I'll try harder.


- promontis - 2011-07-05

Interesting post: Unified Online Music Library front-end GUI and Addons API for Online Music Services?

http://forum.xbmc.org/showthread.php?tid=54061

EDIT:
I'm willing to program the unified music library, so that Akezeke can really integrate spotify in XBMC.

So what else is needed?


- akezeke - 2011-07-05

promontis Wrote:Interesting post: Unified Online Music Library front-end GUI and Addons API for Online Music Services?

http://forum.xbmc.org/showthread.php?tid=54061

EDIT:
I'm willing to program the unified music library, so that Akezeke can really integrate spotify in XBMC.

So what else is needed?

That is indeed interesting reading, the thread is two years so maybe we should check with someone what the current status is.

The solution presented in the thread were an unified frontend like the pvr-branch sounds like the best solution to me, if it then allows c++ binary music addons.

If you are up to the task I'm willing to help you out, and by develop a new spotify addon to use the new interface at the same time I think the development would go faster and easier.

The pure python addon experiment is coming to an end I think, the experience is already slow and sluggish even with just a few features and there are a lot of things that needs to be solved before it is possible.


- promontis - 2011-07-05

akezeke Wrote:The pure python addon experiment is coming to an end I think, the experience is already slow and sluggish even with just a few features and there are a lot of things that needs to be solved before it is possible.

So your conclusion is that it is wise to still implement spotify using c++? I was actually researching whether I can use a more faster "scripting" language than Python. Perhaps something JITed like Java or C#. I've never liked Python... it feels sluggish. What's your view on this?


- akezeke - 2011-07-05

I think that we save ourself a lot of trouble if we allow compiled c++ addons, like the pvr-clients. If we do we have the power of c++, the addon will be fast, we can compile it and include api-key and so on for easier installation, the spotify lib can be used native without any function wrapping and perhaps even included in the addon so that we eliminate the extra step of installing the lib from outside xbmc.

But if we support another scripting language ( I don't like python either ) like java the development might be faster, and it still allows for "compilation". I like java a lot to so maybe that is a good solution to. Maybe sacrificing some speed for faster development might be ok, I think Java should be fast enough anyway.


- promontis - 2011-07-05

Are there any good examples of such pvr clients? Or any other compiled C++ addon?

EDIT: also good discussion: http://forum.xbmc.org/showthread.php?tid=79957


- akezeke - 2011-07-05

promontis Wrote:Are there any good examples of such pvr clients? Or any other compiled C++ addon?

EDIT: also good discussion: http://forum.xbmc.org/showthread.php?tid=79957

The clients that exists now can be found here
https://github.com/opdenkamp/xbmc/tree/pvr-ppa/xbmc/pvrclients


- promontis - 2011-07-05

akezeke Wrote:The clients that exists now can be found here
https://github.com/opdenkamp/xbmc/tree/pvr-ppa/xbmc/pvrclients

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.