Skip to content

Repository files navigation

JSMusicDB

JSMusicDB is a webstandards based music library/music player that can run on any website; using a direct connection to the source mp3 files or on a Synology NAS; in that case a php based proxy is used. Any type of scanning script can be used as long as the output is a JSON file with a specific layout. One of the scripts capable of delivering the correct format is scanner.py

Features

  • Artist (sortable by Alphabet or amount of albums) overview per letter
  • Album (Sortable by Release date or Alphabet) overview per Aritst; with artist information pulled from last.fm
  • Track view per Album
  • Playlist support; you can add/remove tracks and/or albums
  • Optionally host and connect to a NAS (only synology support for now)
  • Scrobble tracks on last.fm / love tracks on last.fm
  • quickly navigate and switch between views
  • Device aware; all features are useable and optimized for desktops, tablets and phones!
  • Incremental updates; see music add when you add it to the filesystem; a compatible backend is required.
  • Optional keyboard navigation with optional IR Blaster support. New IR's can be added easily by creating a keymapping file in js/mapping
  • Special TV mode with extra large fonts and fully remote controllable. Access this mode by calling tv.html instead of index.html
  • Optional wizard to set-up defaults
  • With a CORS enabled backend (like node-mp3stream it's possible to stream music from different servers using JSMusicDB and node-mp3stream)

Settings

You can set a few settings now in JSMusicDB; in a file called settings.json in the root of the project.

{
    "private": false,
    "incremental": true,
    "backend": {
        "serverType": "2",
        "serverURL": "http://127.0.0.1:2000"
    },
    "useWizard": false
}
  • private: set this to false if you use JSMusicDB on an internet connected server; private servers will log in a user automaticly
  • incremental: use the incremental polling mechanism to auto update the collection
  • backend
    • serverType: default servertype 0) no server, 1) synology server 2) node.js server
    • serverURL: the full path of the server; including any ports
  • useWizard: Optionally it's possible to set-up the default server settings by using a one-time wizard.

Requirements

  • Any type of hosting capable of delivering html/css and JS files
  • A PHP based hosting is the synology connector is used

Backend

Since JSMusicDB is backend independent it's possible to create your own backend software in any language you like. Just make sure that the JSON is in the correct format; see the backend projects for more info.

  • Scanner.py A python based music scanner
  • node-mp3scan node.js based music scanner
  • node-mp3stream node.js based webserver with mp3 streaming capabilities All these backends are 100% compatible with JSMusicDB.

Screenshot

Desktop:

Artist overview

artistoverview

Artist view

artistview

Album view

albumview

Player

player

menu

menu

playlist

playlist

settings

settings

about

about

About

JSMusicDB is a standards based music library and player

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors