Elegant web-based music player (formerly Node Music Player)
JavaScript HTML CSS Shell
Latest commit fc01413 Oct 23, 2016 @benkaiser committed on GitHub Merge pull request #120 from ohnx-osdev/upstream
Fix #119


Stretto (previously Node Music Player)

An open source web-based music player

Join the chat at https://gitter.im/benkaiser/stretto


Live Demo

You can view a version I have hosted on my personal server at 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. To purchase or download their music visit their website.

User Installation Instructions

Visit the releases page 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


node, git, npm

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 installed on your system (including all necessary encoding libraries like libmp3lame or libx264). Windows users can install ffmpeg from Zeranoe.

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 install

Then run the server with:

node app.js

Alternatively, install PM2 (read more about PM2 at 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.

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. set_remote_name

  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