Giter Club home page Giter Club logo

plylst's Introduction

About

I (@Shpigford) have been a longtime iTunes user and, despite its shortcomings, the ability to build complex, dynamic playlists has yet to be matched by the other streaming services.

I desperately want that ability in Spotify, so PLYLST is my attempt at building the thing I think it's missing most: that ability to put together dynamic playlists based on many different attributes.

Codebase

The codebase is vanilla Rails, Sidekiq w/ Redis, Puma, and Postgres. Quite a simple setup.

How to start

1. You'll need to pull down the repo locally. You can use GitHub's "Clone or download" button to make that happen.

2. Then, add a config file to config/application.yml with Spotify OAuth keys. See below on how to get setup and get keys for Spotify.

spotify_key: KEY
spotify_secret: SECRET

Spotify

You'll need a free Developer account, which you can create here: https://developer.spotify.com

Go into your dashboard, create a new app or edit the settings on an existing app and set the Redirect URI to http://localhost:5000/users/auth/spotify/callback

These will get you the necessary keys for the app to fully function.

Genius

If you'd like to pull in lyrics for lyric-based rules, you can create an API key here: https://genius.com/developers

The "Client Access Token" is the key you want. Genius is only required if you want to build/test rules around lyrics.

3. In the command line, you'll then run the following to set up gems and the database...

$ bin/setup # Installs the necessary gems and sets up the database

4. Finally, start the server (also in the command line)!

$ foreman start # starts webserver and background jobs

If you don't already have foreman installed, you can install it with gem install foreman

Contributing

It's still very early days for this so your mileage will vary here and lots of things will break.

But almost any contribution will be beneficial at this point.

If you've got an improvement, just send in a pull request. If you've got feature ideas, simply open a new issues!

Performance

One area that can always use some additional perspective is performance.

You can see what the current painpoints are on Skylight.

Slow web requests: https://oss.skylight.io/app/applications/2JBLsZt07yjO/recent/30m/endpoints
Slow worker requests: https://oss.skylight.io/app/applications/x1STSO2QMwrX/recent/30m/endpoints

License & Copyright

Released under the MIT license, see the LICENSE file. Copyright (c) Sabotage Media LLC.

plylst's People

Contributors

shpigford avatar ajjahn avatar jamespember avatar jamischarles avatar eyewritecode avatar bilalbudhani avatar maxnowack avatar ablanchard avatar geocodinglife avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.