Official jukebox of the EdgeCase lab
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
public/images
vendor
.gitignore
LICENSE
README.md
boot.js
package.json

README.md

Spotbox

Spotbox is the official jukebox of the EdgeCase lab; 100% music democracy.

Gone are the days of fighting over airfoil, adding to a central database, and putting up with the songs no one wants to hear. Others have tried, Spotbox will prevail.

What Spotbox Does

Spotbox is a web jukebox that allows users to collectively control the music in your office. Under the covers it uses Spotify to stream audio, so there is no need to manage a shared music collection.

Simply boot the app, select your favorite playlist, and Spotbox will randomly play from that playlist. You can also search for songs and add them to the play queue. If there are songs in the play queue, Spotbox will pull from the queue instead of the playlist.

If a song is playing that you don't like, you can click next. If enough people click next, Spotbox will skip the current song.

Spotbox keeps track of what you have played, showing recently played songs as well as favorite songs and artists.

Spotbox also controls the airfoil connection and volume through the web interface.

Requirements

  • Node
  • Zmq
  • Redis
  • Couchdb

Setup

In order to use Spotbox, you'll need a Spotify appkey (requires Spotify premium account). Pony up, cheap ass.

Spotbox has two components, the driver and the web server.

Driver

  • Download the driver here
  • chmod +x cocoa_spotbox_driver
  • ./cocoa_spotbox_driver ~/path/to/appkey.key USERNAME PASSWORD

Note: Currently there is a bug in the driver related to dynamic linking that may prevent the driver from running, depending on your configuration.

If the driver complains about linking errors, clone the driver repo, open in xcode and build / run manually.

Server

  • Clone this repo
  • cd spotbox
  • npm install
  • node airfoil
  • APP_PORT=9000 APP_ENV=production node server

The production environment minifies assets and requires a quorem to skip tracks. The development environment serves unminified assets and requires only one vote to skip.

Configuration

Rename settings.js.example to settings.js. Edit this file to include third party API credentials. Also, you may wish to instruct Spotbox to load your favorite spotify playlists.

Screenshots

Queue

Search

Recent

Stats

Playlists

Contributing

Fork the project, make your fix, run the test suite, and make a pull request.

License

MIT, see the LICENSE file.