Skip to content

Spiderpig86/Nimbus

Repository files navigation

Nimbus

A simple web application powered by Express and NodeJS that fetches random songs from the SoundCloud library using the SoundCloud API.

⚠ Playlists have stopped working due to SoundCloud API restrictions, but the rest of the application should work correctly.

Keyboard Shortcuts

Command Keyboard Combo
Play/Pause Space
Rewind Shift + Arrow-Left
Seek Next Shift + Arrow-Right
Volume Up Shift + Arrow-Up
Volume Down Shift + Arrow-Down

Dependencies

Nimbus uses a few packages to help this run on a machine. Some of the dependencies include:

  • 💨 Express - it is a web application after all.
  • 🔨 Babel - mainly to support older browsers if you need it.
  • 💎 Webpack - bundles modules together to make imports work.
  • ☁️ Cirrus - a CSS framework I developed.

Why Nimbus?

As great of a platform SoundCloud is, it is mainly built for sharing music through more of a social network rather than for streaming. Recently, SoundCloud has shifted towards streaming services by releasing SoundCloud Go as a subscription based service. this is a great move, but the overall website does not provide as in depth of a streaming experience as it should be. Songs should easily be added to the queue and new related tracks should appear in the queue that allows for user editing. Even simple song details and descriptions should be readily accessible when listening to the song, which a few users complained about before. Nimbus is not designed to replace SoundCloud, but serves as an alternative platform for streaming and discovering music that is built just for that after stripping away everything else.

Screenshots & Video

As of 8/3/17 SearchSettings ChartsQueue

Nimbus as of 8/3/17

Nimbus in action

How to Run

First obtain all the dependencies:

npm install

Then set up your API key, which is located in consts.json. After you make sure that all the dependencies are included, run:

node ./routes/app.js

If you have made any changes to the modules, make sure to run:

webpack
Run locally if your global build does not work: `node_modules/.bin/webpack`

and then rerun:

node ./routes/app.js

To stop the app from running, execute:

process.exit(0);

Download for Chrome

You can download the standalone app for Chrome OS devices (Chrome store no longer shows new apps for other platforms) here.

Keys

Remember to enter your client_id and client_secret in the consts.json file. Also rename any references of consts-sec.json to consts.json`.

TODO

  • Locally store favorited tracks in new favorites tab
  • Improve UI
  • Connect to SoundCloud account