SiriusXM scraper + playlist generator
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.openshift
bin
helpers
lib
public
routes
src
.eslintrc.json
.gitignore
LICENSE
Procfile
README.md
app.js
gulpfile.js
package.json
yarn.lock

README.md

serious-playlists

SiriusXM scraper + playlist generator which powers Serious Playlists

It's a web service that scrapes the Sirius XM 'now playing' data, finds it on youtube, and plays as it is scraped. It's a makeshift free internet satellite radio service, with just the music.

Usage

Hopefully it should be pretty self-explanitory, load the page, select a station, and every 30 seconds it will search for a new track. If there is one, it will add it to the song queue. Songs are search for, and played through, YouTube. When a song ends, the next one will come on.

Installation

  1. Clone this repo
  2. Install Node.js, NPM, & Foreman (gem install foreman)
  3. Install MongoDB and ensure you can connect to it. I use docker, so I would use this command: docker run -p 27017:27017 --name sirius_mongo -d mongo
  4. Setup your environment file in .env. See below for the environment variables you should include.
  5. foreman start to start the web server on localhost:3000

Environment Variables

MONGO_DB=mongodb://0.0.0.0:27017
YT_API_KEY=XXXXXXXXXXXXXXXXXXXX

Additionally, I deploy to Openshift, so in my prod environment I could ensure I have the variables OPENSHIFT_NODEJS_PORT and OPENSHIFT_NODEJS_IP.

To Do

  • Make it pretty
  • Improve the song queue, make it one big long queue, instead of a upcoming and completed one.
  • Make priority list for stations (using a sortable list)
  • Improve the logic for selecting tracks, eg, grab 5 at startup to build the queue, select random previous song from that day if queue is empty, etc.