notspiff / kodi-cmake

Kodi with a CMake based build system. Respect the GPL and do whatever you want with this code.
Other
24 stars 30 forks source link

Add spotyxbmc2 vfs as proof-of-concept Spotify binary addon? #1

Open Hedda opened 10 years ago

Hedda commented 10 years ago

Would you consider this feature request for you to add spotyxbmc2 as proof-of-concept Spotify binary addon?

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

I am not a C or C++ developer but if I understand your binary addons concept then you should be able to help akezeke convert his spotyxbmc2 into a binary vfs addon, as I believe your binary addon framework support is exacly what SpotyXBMC2 needs to run legally and be distributed precompiled with libspotify?

https://github.com/akezeke/spotyxbmc2 Also see fork https://github.com/JohNan/spotyxbmc2

My suggestion is only for this to be a POC that will show if binary addons is capable of addons for such things as Spotify, Pandora, Hulu, and Netflix with library integration, which I think the most demanded addons for XBMC and the main reason why people by Ruku and similar closed source media players

Hedda commented 10 years ago

@notspiff just to be clear, this should enable mixed library with both your own owned local music files with selected Spotify artists, albums, and songs.

Checkout this video about SpotyXBMC addon if you have not tried it yourself http://www.youtube.com/watch?v=xFSdxKyWXpU

Hedda commented 10 years ago

Also checkout pull request https://github.com/akezeke/spotyxbmc2/pull/55

@JohNan @tompen- and @escoand know more about this too?

And https://github.com/akezeke/spotyxbmc2/issues/23 be good to have

notspiff commented 10 years ago

it might be that the interfaces added makes this possible at some point, but i will not focus on any particular addon, certainly not anything including non-libre software.

Hedda commented 10 years ago

FYI, if your concern is that libspotify C API library from Spotify themselves is not open source then you can use an open source library version from the despotify or respotify projects as a 1:1 replacement library as they have reverse engineered it

https://github.com/Hexxeh/spotify-websocket-api https://github.com/SimonKagstrom/despotify

You still need a paid premium account for Spotify to stream content but they do support offline files to your library too, so you can download it and it will be just like buying non-DRM mp3 files online, all fully legal.

Again this could be a good proof of concept

notspiff commented 10 years ago

despotify looks like it would do the job. and yes, it's the closed libraries i was pointing to. but in any case, my focus is on providing the interfaces, others will have to do the add-ons. if somebody wants to work on this i'm all ears on the needed bindings.

Hedda commented 10 years ago

Good to hear! Hope that akezeke or someone else working on SpotyXBMC2 is interesting in working with you on a binary addon version of it then.

Searching it looks like the upstream despotify is no longer working, however people claim that using just the libspotify C API library (the open source reverse engineered version) from either despotify project or the respotify project is still working.

But note that you might have to change the User Agent spoofing as Spotify now look to be blocking the one from the older versions of the protocol used in libspotify, see pull request from spotify-websocket-api (respotify project on GitHub) here for new User Agent info:

https://github.com/Hexxeh/spotify-websocket-api/pull/49

Also note that the upstream Spotify WebSocket API project with respotify looks to be more actively maintained than the upstream despotify project

https://github.com/Hexxeh/spotify-websocket-api http://despotify.sourceforge.net

There might also be other fork out there of despotify that is more active, and both respotify and despotify use #despotify and #hack.se channels on EFnet for development communication so could be best to ask there for latest news.

PS: Another open source project that can play Spotify is Mopidy but it is coded in Java instead of in C or C++ https://github.com/mopidy/mopidy

Hedda commented 10 years ago

Also see for here for a way implementing a way to get around the user having to manually fetch API key themselves from Spotify https://github.com/akezeke/spotyxbmc2/issues/23

It shows just one possible way of decoupling the Spotify API key from the source code so that it is not hardcoded.