Ncurses player for Soundcloud tracks in Ruby
Ruby

README.md

CloudRuby

A soundcloud player written in Ruby with Ncurses for graphical interface and mpg123 for playback.

Installation

Install mpg123, ruby 1.9.2+, curses and json_pure with a package manager of your distribution.

Then install the required gems.

If you are using RVM:

  gem install curses json_pure httpclient

Without RVM you need to obtain write permissions with sudo:

  sudo gem install curses json_pure httpclient open-uri

Usage

From the terminal start with:

  cloudruby          # query the latest 100 tracks from soundcloud
  cloudruby $search  # query the latest 100 tracks that match the $search keyword

  # play a soundcloud url directly
  cloudruby http://soundcloud.com/crassmix/feint-clockwork-hearts-crass

Shortcuts:

KeyDescription
ESC | q | Q Quit
+ | = Increase volume
- | _ Decrease volume
n | N | Up Next track
p | P | Down Previous track
m | M Toggle mute
d | D Download file
v | V Info dialog
Spacebar Toggle playback

More detailed information can be found in the doc folder.

Download

With 'd' or 'D' you can download a downloadable file from soundcloud. The file will be placed inside your download directory specified with --download_dir argument or inside your ~/.cloudruby.json. If none of these are given, the current working directory is used.

A track is indicated by a [D] in the playlist if it's downloadable.

Screenshots

Screenshot showing curses user interface Screenshot showing customized curses user interface Screenshot showing customized curses user interface

Config

Cloudruby can be customized through ~/.cloudruby.json file.

Example

{
  "download_dir": "~/music",
  "audio-backend": "mpg123",
  "curses": {
    "colors": {
      "default": ["white", "black"],
      "playlist": ["green", "black"],
      "playlist_active": ["red", "black"],
      "progress": ["cyan", "black"],
      "progress_bar": ["blue", "white"],
      "title": ["cyan"],
      "artist": ["magenta"],
      "status": ["red"]
    }
  }
}

Read more about styling here

Maintainer

Contributors

License

see LICENSE.