Code Monkey home page Code Monkey logo

spoofy's Introduction

spoofy

License: AGPLv3 Build Status

Spoofy is a web app you can use to apply a permanent shuffle to your Spotify playlists. The tool gives you the option to do a fully random shuffle, or to shuffle while spacing apart songs by the same artist.

The website uses the official Spotify REST API to perform playlist shuffles. To use Spoofy, head over to https://spoofy.noahc3.ml, login with your Spotify account and start shuffling!

Build & Run Locally

The frontend is a Node.js project built with ReactJS, you can launch into debug mode with the command npm start. You can build the static output with npm run build.

The backend server is written in C# using ASP.NET 6.0 and can be easily build by opening the solution in Visual Studio 2022 and building as usual, or using the dotnet build command.

Required configuration for backend server

The backend server requires Spotify application credentials to interact with the Spotify API. Please see the Spotify developer quick start guide for information on how to setup an app with Spotify and get your client ID and client secret. You will need to configure the following redirect URIs in the Spotify developer dashboard for you app:

  • Frontend: http://localhost:3000/callback
  • Swagger/OpenAPI: http://localhost:5003/swagger/oauth2-redirect.html

The backend server also needs a 128bit key to encrypt and store the users authentication token within their browser. You should generate a random 16 character ASCII string for this purpose.

Development Mode

Set your configuration settings using dotnet user secrets. Run these commands in the backend solution directory:

dotnet user-secrets init
dotnet user-secrets set "Spotify:ClientID" [clientid]
dotnet user-secrets set "Spotify:ClientSecret" [clientsecret]
dotnet user-secrets set "Spotify:AuthDataKey" [authdatakey]

Production Deployment

Set your configuration settings in appsettings.json in a top level Spotify object property

{
    ...
    "Spotify": {
        "ClientID": "{clientid}",
        "ClientSecret": "{clientsecret}",
        "AuthDataKey": "{authdatakey}"
    },
    ...
}

spoofy's People

Contributors

noahc3 avatar

Stargazers

 avatar  avatar

Watchers

 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.