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
Ubuntu/Debian
apt-get install mpv youtube-dl
Solus
eopkg install mpv youtube-dl
If it's not found you can use their websites to download and add to your paths MPV, YoutubeDL
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
- Run
npm install
to 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
MPV_LOCATION
env variable - Run
npm run build
- Run
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.
Spotify:
- Make a spotify application at https://developer.spotify.com/dashboard/
- Add a redirect URI that your clients will be able to hit
- Set the
SPOTIFY_REDIRECT_URI
,SPOTIFY_CLIENT_SECRET
, andSPOTIFY_CLIENT_ID
env variables
Soundcloud:
- Register a soundcloud application at https://soundcloud.com/you/apps
- Copy the Client ID and set the
SOUNDCLOUD_CLIENT_ID
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
- Inspiration
- etc