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)



XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - thebearnecessit - 2013-08-01

would LOVE to have this on android, but i wouldnt know where to start.

I only just managed to comie for windows by following the very precise step by step instructions posted in this thread.

having spotify within xbmc on android would be great! its just not convenient for occasional users like family etc to switch apps using a remote gyro mouse (needed for the spotify app)


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - zetsumei - 2013-08-04

Would love to try this but i've just spent hours trying to compile it and now really don't care, good idea but if you can't get a better way of deployment it's going to be dead in the water.


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - MatLCFC - 2013-08-04

(2013-06-25, 21:43)pearce Wrote: When using buildmingwlibs.bat I always get this error message:

Code:
make: cl: Command not found
make: *** [xbmc_asap.dll] Error 127
cp: cannot stat `xbmc_asap.dll': No such file or directory
failed to compile /xbmc/system/players/paplayer/xbmc_asap.dll
nm

Tried it several times now downloading the git source several times but stuck on this error (Windows). Can someone help me?

I get exactly the same error.

I have not managed to compile a version of XBMC With spotifyxbmc2 since XBMC 11.

Not bothered about have the very latest version of XBMC... but my successful build is so old it is pretty useless.

Please can someone explain (in simple terms) how to compile.

If anyone could produce a new step by step guide, it would be hugely appreciated by many!


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - Jz123 - 2013-08-04

I've got it already compiled but i had this idea. Version 12.0 though, but for me no noticable differences in 12.0 to 12.1 or 12.2. Mayby i've missed something or has been already discussed.
But the only reason why there are no compiled versions shared is becouse the api key is coded inside the XBMC.exe right?
What if we just compile XBMC with a easy to read api key string (that is just used for finding the key to know what we need to replace) that we can replace after with a hex editor / patch. Since only the binary code gets saved if i'm correct?
Or did i miss something?
Then it would be atleast more access to standard users. Download custom XBMC, run patcher with the selected api file and done.
The only thing is, i dont know if there was mayby a license reason or something? And i couldn't test it becouse i dont have 2 premium accounts, and cant be bothered to install the developertools again, to test it with a custom string and then change it after its compiled to my api key. When there was mayby a different reason for it?


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - MatLCFC - 2013-08-06

If possible Jz123 that would be great!


Pre-Compiled spotyXBMC2 XBMC + Spotify - Jz123 - 2013-08-07

Ok here it is. This is as far as i could do in the time i wanted to put in there and as far as my knowledge goes.

All credits to the original coders and such!

I've used XBMC v12.0 since i've compiled that before, and also becouse i've readed bugs and errors about v12.1 and v12.1.
Since there is not much important believe i changed this would be fine still for a while.

Download Link:
http://uploaded.net/file/hci3ney9

Notes: 2 extra EULA's agreements added to the installer for 2 tools i added to do the API change/injection as user friendly as possible in some sort kind of patch way. (So don't be scared if u see it!) (hexpatcher to edit XBMC.exe and Swiss File Knife to convert the binary to hex)

Instructions
1. Install spotyXBMCSetup-v12.0-custom.exe and don't start XBMC yet.
2. Download your BINARY API Key from here:
https://developer.spotify.com/technologies/libspotify/keys/
https://developer.spotify.com/technologies/libspotify/#introduction
3. Name it "spotify_appkey.key" and place it in your root dir of XBMC. (Proberly C:\Program Files\XBMC\ or C:\Program Files (x86)\XBMC\)
4. Now execute runpatch.bat IN ADMINISTRATOR MODE!!! (Otherways i'm not allowed to edit XBMC.exe)
5. When everything is ok. Start using XBMC and configure the spotify addon.
6. Dont forget to restart xbmc after its configured.

I've tested it on a clean install on my PC and is working for me.
So it should for u to! Would love to hear if its working.

If i'm not allowed to post this, i'm sorry just send me a message and i'll remove it Big Grin
Also i'm not responsible for anything Rofl


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - AgentX - 2013-08-07

Looks like this makes it way easier Jz123, do you think this can be applied/inserted in an openelec build also? (if so, how?)

Good job, might test it on Windows 7 x64 tomorrow and will let you know.


RE: [WIP] XBMC + Spotify = True (an X - Jz123 - 2013-08-07

(2013-08-07, 20:03)AgentX Wrote: Looks like this makes it way easier Jz123, do you think this can be applied/inserted in an openelec build also? (if so, how?)

Good job, might test it on Windows 7 x64 tomorrow and will let you know.

Ye openelec should work, its same principle. Just compile it with a unique key that is later easy to find to replace.
I've used
Code:
#include <stdint.h>
#include <stdlib.h>
const uint8_t g_appkey[] = {
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99,
};
const size_t g_appkey_size = sizeof(g_appkey);
Then just use a hex editor to find the string in the XBMC binary
Code:
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
and replace it with your api string from spotify. Only added some tools to make it more userfriendly, just find other tools for openelec to make it user friendly. Since u need to convert the binary api key to hex or u must edit the C code to one hex string.
Since i don't got openelec i can't help u further.

Edit:
Actually i dont know? Is openelec so different? I have no idea. But think it should work. I though openelec was just some other kind of linux distro Rofl


Re: RE: [WIP] XBMC + Spotify = True (an X - soder - 2013-08-08

(2013-08-07, 23:18)Jz123 Wrote:
(2013-08-07, 20:03)AgentX Wrote: Looks like this makes it way easier Jz123, do you think this can be applied/inserted in an openelec build also? (if so, how?)

Good job, might test it on Windows 7 x64 tomorrow and will let you know.

Ye openelec should work, its same principle. Just compile it with a unique key that is later easy to find to replace.
I've used
Code:
#include <stdint.h>
#include <stdlib.h>
const uint8_t g_appkey[] = {
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
    0x99,
};
const size_t g_appkey_size = sizeof(g_appkey);
Then just use a hex editor to find the string in the XBMC binary
Code:
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
and replace it with your api string from spotify. Only added some tools to make it more userfriendly, just find other tools for openelec to make it user friendly. Since u need to convert the binary api key to hex or u must edit the C code to one hex string.
Since i don't got openelec i can't help u further.

Edit:
Actually i dont know? Is openelec so different? I have no idea. But think it should work. I though openelec was just some other kind of linux distro Rofl

What about http://openelec.tv/index.php?option=com_kunena&func=view&catid=13&id=15766

How is that different?

/Jacob


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - win88ice2004 - 2013-08-09

Incredible jz123 worked like a charm for me! Running windows 7!


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - Peleke - 2013-08-09

Does this work with RaspBMC?
If yes, what are the needed steps?
Thanks in advance


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - raki - 2013-08-18

Hey guys, thanks for this addon!

Before I'm messing with my system I have a few question since I don't think I've understood every single step.

I've already cloned the git repository and installed libspotify. Next step it says I have to put the appkey.h file into the xbmc source folder. This is the folder under spotyxbmc2, right? But when I compile xbmc with

Code:
Configure, make and install xbmc $ ./bootstrap $ ./configure $ make $ sudo make install

will a complete new xbmc build? Or will there only be extra files compiled? eg. if I'm running an own xbmc build, what happens?

Thanks!


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - MatLCFC - 2013-08-20

Jz123 you are an absolute star! Works perfectly.
THANK YOU


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - StefanK - 2013-08-20

Great work Jz123!!

I regularly use the airplay function from my iPhone and it really irritates me, when the XBMC 12.0 device is not discovered. It usually helps to untick and tick the airplay in xbmc settings - services.

My XBMC 12.2 device (without spotify) is always discovered immediately. So, if an XBMC 12.2 version including Spotify could be made, I would really appreciate it!


RE: [WIP] XBMC + Spotify = True (an XBMC implementation that uses Spotify's official API) - frankfurts - 2013-08-22

does anybody know how to get pvr addons on this?

i try to enable live tv and it says i need an addon. i checked the repo and the pvr addons arent there.

i already have tvheadend set up I just need the xbmc addon