Code Monkey home page Code Monkey logo

node-music-player's Introduction

Node Music Player

An open source web-based music player

Join the chat at https://gitter.im/benkaiser/node-music-player

screenshot

Live Demo

You can view a version I have hosted on one of 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.

How does it work?

Run it on your computer or server containing your music library and then access it through <ip of computer>:2000, for example if you run it on your local computer you would use localhost:2000.

Installation Instructions

Dependencies

node, git

NPM Global Dependencies

grunt-cli, nodemon

To install these, use:

sudo npm install -g grunt-cli nodemon

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 support is not guaranteed and is up to someone else to submit any pull requests for windows support.

After all the dependencies have been installed, run these commands to install the music player:

git clone https://github.com/benkaiser/node-music-player.git
cd node-music-player/
npm install
grunt

Then run the server with:

node 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 show so you can 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!

Android Sync App

If you want to sync your Node Music Player 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

  • Sync between computers (servers running on different computers)
  • Download from youtube and soundcloud
  • View full-resolution cover art
  • Full playlist support
  • Multiple selection
  • Repeat, repeat one and shuffle
  • Search functionality

Planned features

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.