{"id":21740633,"url":"https://github.com/noahc3/spoofy","last_synced_at":"2026-04-28T16:04:01.012Z","repository":{"id":108180997,"uuid":"461406161","full_name":"noahc3/Spoofy","owner":"noahc3","description":"Playlist randomizer for Spotify with weighted algorithms.","archived":false,"fork":false,"pushed_at":"2022-04-17T04:06:47.000Z","size":1600,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T01:14:39.983Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noahc3.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-20T06:39:17.000Z","updated_at":"2024-12-09T02:14:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"d38f8179-d2e0-4067-83e0-3a73b2d4054f","html_url":"https://github.com/noahc3/Spoofy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/noahc3/Spoofy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahc3%2FSpoofy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahc3%2FSpoofy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahc3%2FSpoofy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahc3%2FSpoofy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noahc3","download_url":"https://codeload.github.com/noahc3/Spoofy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahc3%2FSpoofy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261206113,"owners_count":23124838,"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":[],"created_at":"2024-11-26T06:14:27.015Z","updated_at":"2026-04-28T16:03:55.970Z","avatar_url":"https://github.com/noahc3.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://spoofy.noahc3.ml\"\u003e\n        \u003cimg alt=\"spoofy\" src=\"https://i.imgur.com/wAF5Z7m.png\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"License: AGPLv3\" src=\"https://img.shields.io/badge/License-AGPL%20v3-blue.svg\"/\u003e\n    \u003cimg alt=\"Build Status\" src=\"https://github.com/noahc3/Spoofy/actions/workflows/build-deploy.yml/badge.svg\"/\u003e\n\u003c/p\u003e\n\nSpoofy 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.\n\nThe website uses the official Spotify REST API to perform playlist shuffles. To use Spoofy, head over to [https://spoofy.noahc3.ml](https://spoofy.noahc3.ml), login with your Spotify account and start shuffling!\n\n## Build \u0026 Run Locally\nThe 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`.\n\nThe 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.\n\n### Required configuration for backend server\n\nThe backend server requires Spotify application credentials to interact with the Spotify API. Please see the [Spotify developer quick start guide](https://developer.spotify.com/documentation/web-api/quick-start/) 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:\n\n* Frontend: `http://localhost:3000/callback`\n* Swagger/OpenAPI: `http://localhost:5003/swagger/oauth2-redirect.html`\n\n\nThe 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.\n\n**Development Mode**\n\nSet your configuration settings using dotnet user secrets. Run these commands in the backend solution directory:\n\n```\ndotnet user-secrets init\ndotnet user-secrets set \"Spotify:ClientID\" [clientid]\ndotnet user-secrets set \"Spotify:ClientSecret\" [clientsecret]\ndotnet user-secrets set \"Spotify:AuthDataKey\" [authdatakey]\n```\n\n**Production Deployment**\n\nSet your configuration settings in `appsettings.json` in a top level `Spotify` object property\n\n```\n{\n    ...\n    \"Spotify\": {\n        \"ClientID\": \"{clientid}\",\n        \"ClientSecret\": \"{clientsecret}\",\n        \"AuthDataKey\": \"{authdatakey}\"\n    },\n    ...\n}","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahc3%2Fspoofy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoahc3%2Fspoofy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahc3%2Fspoofy/lists"}