{"id":13819409,"url":"https://github.com/Shpigford/plylst","last_synced_at":"2025-05-16T04:33:47.818Z","repository":{"id":35590925,"uuid":"191401898","full_name":"Shpigford/plylst","owner":"Shpigford","description":"Smart playlists for Spotify! Stop relying on fancy pants algorithms to organize your library and instead build playlists the way you want.","archived":false,"fork":false,"pushed_at":"2022-01-05T00:07:02.000Z","size":7327,"stargazers_count":331,"open_issues_count":22,"forks_count":52,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-14T10:07:52.494Z","etag":null,"topics":["music","rails","ruby","spotify","spotify-api"],"latest_commit_sha":null,"homepage":"https://plylst.app","language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shpigford.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-11T15:38:11.000Z","updated_at":"2024-10-14T00:51:06.000Z","dependencies_parsed_at":"2022-08-08T09:30:49.464Z","dependency_job_id":null,"html_url":"https://github.com/Shpigford/plylst","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shpigford%2Fplylst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shpigford%2Fplylst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shpigford%2Fplylst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shpigford%2Fplylst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shpigford","download_url":"https://codeload.github.com/Shpigford/plylst/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225405620,"owners_count":17469383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["music","rails","ruby","spotify","spotify-api"],"created_at":"2024-08-04T08:00:47.172Z","updated_at":"2024-11-19T18:32:02.473Z","avatar_url":"https://github.com/Shpigford.png","language":"SCSS","funding_links":[],"categories":["SCSS","Happy Exploring 🤘"],"sub_categories":[],"readme":"## About\nI ([@Shpigford](https://twitter.com/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.\n\nI 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.\n\n## Codebase\nThe codebase is vanilla [Rails](https://rubyonrails.org/), [Sidekiq](https://sidekiq.org/) w/ [Redis](https://redis.io/), [Puma](http://puma.io/), and [Postgres](https://www.postgresql.org/). Quite a simple setup.\n\n## How to start\n\n**1. You'll need to pull down the repo locally.** You can use GitHub's \"Clone or download\" button to make that happen.\n\n**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.\n\n```yaml\nspotify_key: KEY\nspotify_secret: SECRET\n```\n\n### Spotify\nYou'll need a free Developer account, which you can create here: https://developer.spotify.com\n\nGo 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`\n\nThese will get you the necessary keys for the app to fully function.\n\n### Genius\nIf you'd like to pull in lyrics for lyric-based rules, you can create an API key here: https://genius.com/developers\n\nThe \"Client Access Token\" is the key you want. Genius is only required if you want to build/test rules around lyrics.\n\n**3. In the command line, you'll then run the following to set up gems and the database...**\n```bash\n$ bin/setup # Installs the necessary gems and sets up the database\n```\n\n**4. Finally, start the server (also in the command line)!**\n```bash\n$ foreman start # starts webserver and background jobs\n```\n\nIf you don't already have `foreman` installed, you can install it with `gem install foreman`\n\n## Contributing\nIt's still very early days for this so your mileage will vary here and lots of things will break.\n\nBut almost any contribution will be beneficial at this point.\n\nIf you've got an improvement, just send in a pull request. If you've got feature ideas, simply [open a new issues](https://github.com/Shpigford/plylst/issues/new)!\n\n### Performance\nOne area that can always use some additional perspective is performance.\n\nYou can see what the current painpoints are on Skylight.\n\n**Slow web requests: https://oss.skylight.io/app/applications/2JBLsZt07yjO/recent/30m/endpoints**  \n**Slow worker requests: https://oss.skylight.io/app/applications/x1STSO2QMwrX/recent/30m/endpoints**\n\n## License \u0026 Copyright\nReleased under the MIT license, see the [LICENSE](./LICENSE) file. Copyright (c) Sabotage Media LLC.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShpigford%2Fplylst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FShpigford%2Fplylst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShpigford%2Fplylst/lists"}