Skip to content

thomasf/jahspotify

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

===============================================================================
Jah'Spotify Project
===============================================================================

---- Introduction -----

Jah'Spotify is a simple Java wrapper built on top of the Spotify native APIs (libspotify)

Currently supports:

- retrieving library (all user playlists)
- retrieve a playlist
- retrieve an album
- retrieve a track
- retrieve an image
- add tracks to a queue
- play tracks
- pause/skip/play functions

All the above functions are accessible over a JSON based RESTful API.  This is very much work in progress and will
most likely change over time.

---- To build -----

Currently, Jah'Spotify only supports the Linux version of libspotify and will therefore require a Linux installation
to compile.  You also need to download and install libspotify & request an API key from Spotify.  This can be done
on the http://developer.spotify.com website.  Generate the key and download the C code version of it.  Place this
in a file called AppKey.h in the native/src/main/native/inc directory.  You may want to place some #ifndef APPKEY
statements in this to prevent linking problems.

Next, to build the sources, check 'em out from git

git clone git://github.com/johanlindquist/jahspotify.git
cd jahspotify
mvn clean install

---- Modules -----

- api: provides the basic operations for interacting with Jah'Spotify (and in turn libspotify)
- native: contains all native & JNI code interacting with libspotify
- web: provides the RESTful API (json based)
- web-client: provides java client for interacting with the RESTful API
- web-common: provides the java beans which are serialized over the RESTful API

---- REST API -----

To run up the Jah'Spotify RESTful API

mvn jetty:run -Dspotify.username=<your username> -Dspotify.password=<your password>

http://localhost:8080/jahspotify/status.html

Library retrieval: http://localhost:8080/jahspotify/library/
Playlist retrieval: http://localhost:8080/jahspotify/playlist/spotify:user:dummy-user:playlist:0s8KIfDTmZz5zupnkqF6FO
Album retrieval: http://localhost:8080/jahspotify/album/spotify:album:3PogVmhNucYNfyywZvTd7F
Artist retrieval: http://localhost:8080/jahspotify/artist/spotify:artist:7dGJo4pcD2V6oG8kP0tJRR
Track retrieval: http://localhost:8080/jahspotify/track/spotify:track:7mliwEVqxIuwLmHdTXlBrx
Image retrieval: http://localhost:8080/jahspotify/image/spotify:image:e99e74261d120029fecfde36ab1c07a0eb99e54d
Adding a track to the play queue: http://localhost:8080/jahspotify/queue/add-to-queue/spotify:track:2WTn8V1SuH7peQSYJwrsiI
Retrieving play queue: http://localhost:8080/jahspotify/queue

While playing:

Skip to next track in queue: http://localhost:8080/jahspotify/controller/skip
Pause playback: http://localhost:8080/jahspotify/controller/pause
Resume play: http://localhost:8080/jahspotify/controller/play

There are other URLs - please examine the web module for them.

NOTE: You may have to setup your LD_LIBRARY_PATH to point to the libspotify & libjahspotify locations!
NOTE: You need to add the SpringSource Enterprise Bundle Repository to your maven configuration: http://ebr.springsource.com/repository/app/faq#q8

About

Jah'Spotify is a set of Java bindings over the Spotify native library (libspotify).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 40.5%
  • JavaScript 37.8%
  • C 21.7%