This is a webserver where everybody can enqueue songs from various online sources and create a playlist together.
It has a nice user interface and is easy to use.
It can be used on parties or just in any room where people gather, a roomshare house, an office, a student's room at the university. Everywhere, where people can listen to music together.
It's built with the well known Meteor App Framework.
- Create a playlist together
- Add / delete songs
- Skip songs
- Play / Pause
- Volume
- Desktop and Mobile UI
- Simple and clean
- Colours adjust to the thumbnail images
- Plays music from any streaming source that youtube-dl can handle, such as
- YouTube
- SoundCloud
- Vimeo
- ...
Unfortunately Meteor apps are somewhat hard to deploy. The framework was originaly intented for web apps running on a server. This is my main focus at the moment, to find an easy deployment method.
This server has to be installed on a machine connected to the stereo.
First of all you need a machine running Linux or OS X.
To run the server you need some programs the app depends on:
- MPV Player - To play the music
- Youtube-Dl - To download or stream the music
- Graphicsmagick - For some image processing magic
On OS X this can be easily done using Homebrew by simply typing
brew install mpv youtube-dl graphicsmagick
On a Debian flavoured Linux this can be easily done by simply typing
sudo apt-get install mpv youtube-dl graphicsmagick
But be aware, that especially on Debian the MPV player is usually way too old.
The easiest way to run it, is to install the whole Meteor development stack. This is the best way if you just need it on a laptop on a party and you're not looking for a permanent solution.
For install information look here.
Then just download or clone the repository using
git clone https://github.com/00SteinsGate00/MusicServer.git
From within the projects folder simply type
meteor npm install --save
meteor -p <port>
to run it on your local machine on the port specified (default is 3000). The server can then be accesses from any device within your network, by simpling typing in your browser <ip_of_your_device>:<port_specified>
.
To fully deploy a meteor app on your server a nice tutorial can be found here.
This application was originally intented to run on ARM Boards like the Raspberry Pi. The image processing happening in the background was too heavy for a Raspberry Pi 1 Model B though. The image process can be switched off in the player's UI.
I have not yet tested it on stronger ARM boards, such as the Raspberry Pi 3 or Odroid.
I will look into this as soon as possible.
This software has survived numerous parties and evenings, with little to no problems. However there still are bugs from time to time and the software is not yet stable.
Some issues are
- Volumebar does not appear - reload the page until it does
- Radio streams will break the server
- It is nearly impossible to use with a slow internet connection
A big thanks goes to all the great software that this project relies on
- Meteor App Framework - The app framework itself
- MPV Player - For playing the music
- YouTube-dl - For downloading and streaming the music sources
- Node-MPV - For the integration of MPV player into NodeJs
- Graphicsmagick - For the image processing
There are several plans in my head for future features
- Easy deployment. Possibly through Docker images
Settings, to control various things and to switch off the image processing for slower ARM boards- REST API
- Playing local files from the server
- Uploading files from your device
- UI improvements
- Stability improvements
- Browser Extension to provide a button on YouTube, to just click