silk-gui
Version:
GUI for developers and Node OS
106 lines (71 loc) • 4.74 kB
Markdown
Stretto (previously Node Music Player)
=================
#### An open source web-based music player
[](https://gitter.im/benkaiser/stretto?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

### Live Demo
You can view a version I have hosted on my personal server at [http://music.kaiserapps.com/](http://music.kaiserapps.com/).
To have the full functionality and to use your own music please follow the install instructions below.
The music I have used for the hosted version is copyright of [Social Club](http://martymar.goodcitymusic.com/).
To purchase or download their music visit [their website](https://socialxclub.bandcamp.com).
### User Installation Instructions
Visit the [releases page](https://github.com/benkaiser/stretto/releases) for the latest release, and select the download for your platform. Unzip the download and run either the `Stretto.exe` on Windows, `Stretto.app` on Mac or the `Stretto` executable on Linux.
### Dev Installation Instructions
##### Dependencies
[node](http://nodejs.org/), [git](http://git-scm.com/), [npm](http://npmjs.org)
If you have any issues during install, make sure you are running the latest version of Nodejs and Npm.
For the Youtube download and converison, make sure you have [ffmpeg](https://ffmpeg.org/) installed on your system (including all necessary encoding libraries like libmp3lame or libx264).
Windows users can install ffmpeg from [Zeranoe](http://ffmpeg.zeranoe.com/builds/).
After all the dependencies have been installed, run these commands to install the music player:
```
git clone https://github.com/benkaiser/stretto.git
cd stretto/
npm run setup
```
Then run the server with:
```
node app.js
```
Alternatively, install PM2 (read more about PM2 at [pm2.keymetrics.io](http://pm2.keymetrics.io/))with `npm install -g pm2` and run the server persistently with:
```
pm2 start app.js
```
Go to `localhost:2000` in your browser (or known IP of server if it is on a different machine). From there a prompt will allow you to change your music directory, after saving your music directory you can click `Scan Library -> Regular Scan` at the top of the page. From there select `Start Scan` and let it do it's magic adding all the songs to your library. Happy listening!
### Submitting issues
Please include:
- operating system
- architecture (32bit or 64bit)
- nodejs version `node --version`
- npm version `npm --version`
Then include steps to reproduce followed by what you were aiming to do / expected to happen, and what did happen.
### Android Sync App
If you want to sync your Stretto playlists to your phone, [check out the android sync app repository](https://github.com/benkaiser/android-node-music-sync).
### Remote Control Shortcuts
If you would like to hook up keyboard shortcuts to play/pause/next/prev when you aren't currently focused
on the chrome follow these steps:
1. first set your remote name from the `Remote Setup` button in the bottom right.

2. In whatever program you use to configure your shortcuts, link the button press you want to curl commands of the format:
`curl http://localhost:2000/command/<remote_name>/<command>` where `<remote_name>` is the remote name you entered and `<command>` can be either `next`, `prev` or `playpause`.
For an example, here is my i3 config bindings that hook up Alt+PgDn, Alt+PgUp and Alt+Home to the commands:
```
bindsym $mod+Home exec curl http://localhost:2000/command/my_remote_name/playpause
bindsym $mod+Next exec curl http://localhost:2000/command/my_remote_name/prev
bindsym $mod+Prior exec curl http://localhost:2000/command/my_remote_name/next
```
### Features Implemented
#### Defining Features
- Sync between computers (share your library with your friends!)
- Generate mix from songs streamed from YouTube, allowing you to explore new music from your current library
- Download from YouTube and SoundCloud
- Built in the open with other open source libraries
#### Simple Features
- View full-resolution cover art
- Full playlist support
- Multiple selection
- Repeat, repeat one and shuffle
- Search functionality
### Planned features
- See the projects public [Trello board](https://trello.com/b/cXdOSOoR/stretto) for features planned / implemented. If you want to request a feature, please [create an issue](https://github.com/benkaiser/stretto/issues/new).
### License
[MIT](https://opensource.org/licenses/MIT)