Macrobeat is an all in one cloud streaming interface for YouTube, Soundcloud, Bandcamp, Spotify and more to come soon. It allows users to search all services inside the interface and add to a global playing queue and the music will play out of the connected speakers (from the server) It requires minimal setup and has a great interface.
These instructions will get you a copy of the project up and running on your local machine.
You must have NodeJS, NPM, MPV and YouTube DL installed for this project to function.
NodeJS and NPM are offered on their site
MPV can be found in major Linux distributions package managers
apt-get install mpv youtube-dl
eopkg install mpv youtube-dl
Test installation by issuing these commands:
node -v npm -v youtube-dl --version mpv --version
You should have no errors and see all 4 of the respective versions
- Clone the repo
npm installto install the node packages
- Install MPV and YoutubeDL (Linux users should be able to find them on their package managers)
- Windows users: Either add MPV and YoutubeDL to your PATH after downloading the binaries or set them in a folder easily accessed and set the
npm run build
npm run start
Out of the box, Macrobeat supports YouTube and Bandcamp with no configuration. If you wish to use Soundcloud and Spotify follow these steps.
- Make a spotify application at https://developer.spotify.com/dashboard/
- Add a redirect URI that your clients will be able to hit
- Set the
- Register a soundcloud application at https://soundcloud.com/you/apps
- Copy the Client ID and set the
You should now see a print in the terminal saying it's listening on a specific port. If you point any browsers on your local network to the server's IP and port you should be asked for a display name and icon.
- React - Front end framework
- NodeJS & Express - Back end framework
- MPV - Audio playback from the command line
- YoutubeDL - Expose streams for the audio playback
- Evan Burgess - Front End UI/UX and Player Logic - evanBurg
This project is licensed under the MIT License - see the LICENSE.md file for details
- Hat tip to anyone whose code was used