This is the guide for Ducky-hosted Spoofify. For the self-hosted installation guide, see this page.
In order to run Spoofify, it is required to create a Spotify Developer application and pass the credentials to the app.At this point, you should have communication with Ducky and she should guide you through the process. This guide serves as a supplemental resource to help you through the specifics.
Let Ducky know what you’d like before we continue!
2
Create a Spotify Developer Application
This is the step that generates the required credentials for Spoofify to fetch data from your Spotify account.
As of February 11 2026, a Spotify Premium account is required to access developer resources. Learn more about this Spotify change here
Show Opinion
This change is harmful to the community building apps with Spotify for many reasons. The most glaring of them are:
Developers now have to be a Spotify Premium subscriber to experiment with the Spotify API.
Any given Developer is limited to a single application, an arbitrary limitation that hinders experimentation.
Any given application in “development mode” (unapproved) is limited to 5 total users, including the developer themself (people who can log in using it)
A developer who wishes to exceed the new limits must be “approved,” which involves being an established company/enterprise building a Spotify integration.
The approval process is not intended for hobbyists/personal projects in any way, per Spotify’s own words.
Spotify has essentially killed any ounce of developer trust they had left. These changes follow the quiet disabling of app creation and subsequent ignoring of developers who raised concerns about it. Building an app on Spotify now requires giving money to Spotify or being a large business, all while Spotify is actively exploiting and diminishing creators.
If you so please, let Spotify know how this change hurts the developer community on this thread
Choose Save (or Create) to create the application.
3
Provide Application Credentials
Once your application is created, copy the Client ID and provide it to Ducky.Choose View client secret to generate it, then copy the Client Secret and provide it to Ducky.
Do not ever share the Client Secret with anyone else. Treat it like a password to your dev application.
4
Ducky's Turn
Now that the developer application is created, it’s Ducky’s turn to work some magic! (start the app)
We’ll continue to the next step once that’s done. Ducks work at their own pace, you know.
5
First Login
Once everything is set up, it’s time to log in for the first time! Head to the home page URL provided by Ducky and click Log In to authorize Spotify.
Once the Twitch account being used is established, head to the URL provided by Ducky to log in with the bot account via Twitch.
If Ducky is hosting the bot account for you, continue to step 2.
2
Add the bot to your channel
While logged in to your main Twitch account, navigate to the bot’s chat (https://twitch.tv/popout/{bot_username}/chat)Run !join in the bot’s chat, and it will join your channel.
!leave can be used to force the bot to leave your Twitch chat
3
OPTIONALMod or VIP the BotIn order to prevent being caught by spam filters, the Spoofify bot will prepend a string of 3 random numbers to each message. [123]This can be disabled, though it is required to Mod or VIP the bot to make it immune to spam filters in your chat.The bot’s functionality does not depend on Mod/VIP, and this step is optional if you don’t mind the numbers.
The Spoofify bot comes with a simple setup command, !setup, that creates the basic configuration and runs through the available bot settings.Run !setup in your Twitch chat and acknowledge the prompts that follow.
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Ducky Docs","colors":{"primary":"#663a09","light":"#A67E26","dark":"#663a09"},"logo":{"light":"https://mintcdn.com/ducky-c8b7b49a/oEbd00tK3rFspoX8/logo/light.png?fit=max\u0026auto=format\u0026n=oEbd00tK3rFspoX8\u0026q=85\u0026s=a846600742b6ef3f65839c6e143a4726","dark":"https://mintcdn.com/ducky-c8b7b49a/oEbd00tK3rFspoX8/logo/dark.png?fit=max\u0026auto=format\u0026n=oEbd00tK3rFspoX8\u0026q=85\u0026s=87bb38352169e12bfe22673dc90aee9e"},"favicon":"https://mintcdn.com/ducky-c8b7b49a/oEbd00tK3rFspoX8/favicon.png?fit=max\u0026auto=format\u0026n=oEbd00tK3rFspoX8\u0026q=85\u0026s=711f8b33571b19147d44c90eb16a810a","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","typescript","nodejs","python","go","kotlin","java"]},"mdx":{"server":"http://localhost:1234/"}},"footer":{"socials":{"website":"https://ducky.wiki","github":"https://ducky.wiki/travel/github","bluesky":"https://ducky.wiki/travel/bluesky","discord":"https://ducky.wiki/travel/discord","youtube":"https://ducky.wiki/travel/youtube"}},"fonts":{"family":"Fira Code"},"contextual":{"options":["view","copy"],"display":"header"},"styling":{"latex":false},"background":{"color":{"light":"#faf9f8","dark":"#0e0d0c"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ducky-c8b7b49a","hasAudioNarration":false,"actualSubdomain":"ducky-c8b7b49a","customDomains":["docs.ducky.wiki"],"gitSource":{"type":"github","owner":"duckyyylol","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae2b066fe390ee500787c62","collectionId":"e5944c86-c688-47b2-a945-201747eedb7c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae2b066fe390ee500787c62"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae2b066fe390ee500787c62","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":34},{"language":"default","tag":"Ducky Radio","count":31},{"language":"default","tag":"Endpoints","count":18},{"language":"default","tag":"Spoofify","count":16},{"language":"default","tag":"Types","count":14},{"language":"default","tag":"Minecraft Mods","count":8},{"language":"default","tag":"Browser Overlays","count":6},{"language":"default","tag":"Create: Jukebox Display","count":5},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"Dye Blocks","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"projects/spoofify/ducky_hosted/starter_guide","slug":"/projects/spoofify/ducky_hosted/starter_guide","pageMetadata":{"title":"Ducky-Hosted Spoofify","sidebarTitle":"Starter Guide","icon":"book-open","description":null,"href":"/projects/spoofify/ducky_hosted/starter_guide"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,h6:`h6`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Badge,CodeBlock,Expandable,Heading,Info,Note,ParamField,ResponseField,Step,Steps}=_components;if(!Badge)_missingMdxReference(`Badge`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`This is the guide for Ducky-hosted Spoofify. For the self-hosted installation guide, see `,_jsx(_components.a,{href:`/projects/spoofify/self_hosted/installation`,children:`this page`}),`.`]})}),`\n`,_jsx(_components.p,{children:`In order to run Spoofify, it is required to create a Spotify Developer application and pass the credentials to the app.`}),`\n`,_jsx(_components.p,{children:`At this point, you should have communication with Ducky and she should guide you through the process. This guide serves as a supplemental resource to help you through the specifics.`}),`\n`,_jsx(Heading,{level:`3`,id:`setting-up-spoofify`,children:`Setting up Spoofify`}),`\n`,_jsx(Expandable,{title:`Steps to set up Spoofify`,defaultOpen:true,children:_jsxs(Steps,{children:[_jsxs(Step,{title:`Claim your spoofify.live URL`,children:[_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\u003cyour choice>.spoofify.live`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Let Ducky know what you’d like before we continue!`})]}),_jsxs(Step,{title:`Create a Spotify Developer Application`,children:[_jsx(_components.p,{children:`This is the step that generates the required credentials for Spoofify to fetch data from your Spotify account.`}),_jsxs(Note,{children:[_jsxs(_components.p,{children:[`As of February 11 2026, a Spotify Premium account is required to access developer resources. Learn more about this Spotify change `,_jsx(_components.a,{href:`https://developer.spotify.com/blog/2026-02-06-update-on-developer-access-and-platform-security`,children:`here`})]}),_jsxs(Expandable,{title:`Opinion`,children:[_jsx(_components.p,{children:`This change is harmful to the community building apps with Spotify for many reasons. The most glaring of them are:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Developers now have to be a Spotify Premium subscriber to experiment with the Spotify API.`}),`\n`,_jsx(_components.li,{children:`Any given Developer is limited to a single application, an arbitrary limitation that hinders experimentation.`}),`\n`,_jsx(_components.li,{children:`Any given application in “development mode” (unapproved) is limited to 5 total users, including the developer themself (people who can log in using it)`}),`\n`,_jsxs(_components.li,{children:[`A developer who wishes to exceed the new limits must be “approved,” which involves being an established company/enterprise building a Spotify integration.`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The approval process is not intended for hobbyists/personal projects in any way, per Spotify’s own words.`}),`\n`]}),`\n`]}),`\n`]}),_jsx(_components.p,{children:`Spotify has essentially killed any ounce of developer trust they had left. These changes follow the quiet disabling of app creation and subsequent ignoring of developers who raised concerns about it. Building an app on Spotify now requires giving money to Spotify or being a large business, all while Spotify is actively exploiting and diminishing creators.`}),_jsxs(_components.h6,{children:[`If you so please, let Spotify know how this change hurts the developer community on `,_jsx(_components.a,{href:`https://community.spotify.com/t5/Spotify-for-Developers/February-2026-Spotify-for-Developers-update-thread/m-p/7330564`,children:`this thread`})]})]})]}),_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.a,{href:`https://developer.spotify.com/dashboard`,children:`the Spotify Developer Dashboard`}),`, choose `,_jsx(_components.code,{children:`Create app`}),`, and enter the following information:`]}),_jsxs(Expandable,{title:`Options`,children:[_jsx(ParamField,{body:`App Name`,required:true,id:`param-app-name`,children:_jsx(_components.p,{children:`The public-facing name of the application. (What you see when you log in)`})}),_jsxs(ParamField,{body:`App Description`,required:true,id:`param-app-description`,children:[_jsx(_components.p,{children:`A concise description of what the app does.`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Displays currently playing song + queue management`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(ParamField,{body:`Redirect URI`,post:[`https://\u003cyou>.spoofify.live/auth`],required:true,id:`param-redirect-uri`,children:_jsx(_components.p,{children:`The URL that Spotify will redirect you to after logging in.`})}),_jsx(ParamField,{body:`APIs/SDKs`,required:true,id:`param-apis-sdks`,children:_jsxs(_components.p,{children:[`Enable only `,_jsx(_components.code,{children:`Web API`})]})})]}),_jsxs(_components.p,{children:[`Choose `,_jsx(_components.code,{children:`Save`}),` (or `,_jsx(_components.code,{children:`Create`}),`) to create the application.`]})]}),_jsxs(Step,{title:`Provide Application Credentials`,children:[_jsxs(_components.p,{children:[`Once your application is created, copy the `,_jsx(_components.code,{children:`Client ID`}),` and provide it to Ducky.`]}),_jsxs(_components.p,{children:[`Choose `,_jsx(_components.code,{children:`View client secret`}),` to generate it, then copy the `,_jsx(_components.code,{children:`Client Secret`}),` and provide it to Ducky.`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`Do not ever share the Client Secret with anyone else. Treat it like a password to your dev application.`})}),`\n`]})]}),_jsxs(Step,{title:`Ducky's Turn`,children:[_jsx(_components.p,{children:`Now that the developer application is created, it’s Ducky’s turn to work some magic! (start the app)`}),_jsx(Info,{children:_jsx(_components.p,{children:`We’ll continue to the next step once that’s done. Ducks work at their own pace, you know.`})})]}),_jsx(Step,{title:`First Login`,children:_jsxs(_components.p,{children:[`Once everything is set up, it’s time to log in for the first time! Head to the home page URL provided by Ducky and click `,_jsx(_components.code,{children:`Log In`}),` to authorize Spotify.`]})})]})}),`\n`,_jsx(Heading,{level:`3`,id:`setting-up-the-twitch-bot`,children:`Setting up the Twitch Bot`}),`\n`,_jsx(Expandable,{title:`Steps to set up the Twitch Bot`,children:_jsxs(Steps,{children:[_jsxs(Step,{stepNumber:`0`,children:[_jsxs(_components.p,{children:[_jsx(Badge,{color:`yellow`,children:`OPTIONAL`}),` `,_jsx(_components.strong,{children:`Create the Bot Account`})]}),_jsx(Note,{children:_jsx(_components.p,{children:`You should have prior communication from Ducky, and you should know whether or not you need this step. If not, please touch base before continuing.`})}),_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.a,{href:`https://twitch.tv`,children:`https://twitch.tv`}),` and create a new account.`]})]}),_jsxs(Step,{stepNumber:`1`,title:`Authorize the Bot`,children:[_jsx(_components.p,{children:`Once the Twitch account being used is established, head to the URL provided by Ducky to log in with the bot account via Twitch.`}),_jsx(Note,{children:_jsx(_components.p,{children:`If Ducky is hosting the bot account for you, continue to step 2.`})})]}),_jsxs(Step,{stepNumber:`2`,title:`Add the bot to your channel`,children:[_jsxs(_components.p,{children:[`While logged in to your main Twitch account, navigate to the bot’s chat (`,_jsx(_components.a,{href:`https://twitch.tv/popout/%7Bbot_username%7D/chat`,children:`https://twitch.tv/popout/{bot_username}/chat`}),`)`]}),_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`!join`}),` in the bot’s chat, and it will join your channel.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`!leave`}),` can be used to force the bot to leave your Twitch chat`]})})]}),_jsxs(Step,{stepNumber:`3`,children:[_jsxs(_components.p,{children:[_jsx(Badge,{color:`yellow`,children:`OPTIONAL`}),` `,_jsx(_components.strong,{children:`Mod or VIP the Bot`})]}),_jsxs(_components.p,{children:[`In order to prevent being caught by spam filters, the Spoofify bot will prepend a string of 3 random numbers to each message. `,_jsx(_components.code,{children:`[123]`})]}),_jsx(_components.p,{children:`This can be disabled, though it is required to Mod or VIP the bot to make it immune to spam filters in your chat.`}),_jsx(_components.p,{children:`The bot’s functionality does not depend on Mod/VIP, and this step is optional if you don’t mind the numbers.`}),_jsx(ResponseField,{name:`/vip bot_username`,id:`param-vip-bot-username`,children:_jsx(_components.p,{children:`Adds the bot as a VIP in your chat`})}),_jsx(ResponseField,{name:`/mod bot_username`,id:`param-mod-bot-username`,children:_jsx(_components.p,{children:`Adds the bot as a Moderator in your chat`})})]}),_jsxs(Step,{stepNumber:`4`,title:`Run Setup Command`,children:[_jsxs(_components.p,{children:[`The Spoofify bot comes with a simple setup command, `,_jsx(_components.code,{children:`!setup`}),`, that creates the basic configuration and runs through the available bot settings.`]}),_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`!setup`}),` in your Twitch chat and acknowledge the prompts that follow.`]})]})]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ducky-Hosted Spoofify","sidebarTitle":"Starter Guide","icon":"book-open","description":null,"href":"/projects/spoofify/ducky_hosted/starter_guide"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Setting up Spoofify","slug":"setting-up-spoofify","depth":3,"children":[]},{"title":"Setting up the Twitch Bot","slug":"setting-up-the-twitch-bot","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ducky-c8b7b49a","siteName":"Ducky Docs","title":"Ducky-Hosted Spoofify - Ducky Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-25T15:38:04.817Z","originalFileLocation":"projects/spoofify/ducky_hosted/starter_guide.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Ducky Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ducky-Hosted Spoofify - Ducky Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ducky Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ducky-c8b7b49a.mintlify.app/_mintlify/api/og/v2?division=Ducky-Hosted\u0026amp;title=Ducky-Hosted+Spoofify\u0026amp;theme=aca1f5b57ac6e5f2b7e39b13\u0026amp;signature=55f2eb7829cdd0fb83f4128ea480c3d398e940266f3514b6dc58125e0da72252\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ducky-Hosted Spoofify - Ducky Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ducky-c8b7b49a.mintlify.app/_mintlify/api/og/v2?division=Ducky-Hosted\u0026amp;title=Ducky-Hosted+Spoofify\u0026amp;theme=aca1f5b57ac6e5f2b7e39b13\u0026amp;signature=55f2eb7829cdd0fb83f4128ea480c3d398e940266f3514b6dc58125e0da72252\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ducky-c8b7b49a/-Geme3p3q2iAvly1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ducky Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#663a09\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/projects/spoofify/ducky_hosted/starter_guide.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ducky.wiki/#organization\",\"name\":\"Ducky Docs\",\"url\":\"https://docs.ducky.wiki\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ducky-c8b7b49a/oEbd00tK3rFspoX8/logo/light.png?fit=max\u0026auto=format\u0026n=oEbd00tK3rFspoX8\u0026q=85\u0026s=a846600742b6ef3f65839c6e143a4726\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ducky.wiki#website\",\"name\":\"Ducky Docs\",\"url\":\"https://docs.ducky.wiki\",\"publisher\":{\"@id\":\"https://docs.ducky.wiki/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide#webpage\",\"url\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide\",\"name\":\"Ducky-Hosted Spoofify\",\"dateModified\":\"2026-08-25T15:38:04.817Z\",\"isPartOf\":{\"@id\":\"https://docs.ducky.wiki#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.ducky.wiki/projects/spoofify/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ducky-Hosted Spoofify\",\"item\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide#article\",\"headline\":\"Ducky-Hosted Spoofify\",\"name\":\"Ducky-Hosted Spoofify\",\"url\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ducky.wiki/projects/spoofify/ducky_hosted/starter_guide#webpage\"},\"dateModified\":\"2026-08-25T15:38:04.817Z\",\"publisher\":{\"@id\":\"https://docs.ducky.wiki/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ducky.wiki#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ducky Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ducky Docs","nav":{"global":null,"products":[{"product":"Docs Home","icon":"home","pages":[{"title":"Docs Home","href":""}]},{"product":"Minecraft Mods","icon":"cube","pages":[{"title":"Minecraft Mods","href":"/mods/createjukeboxdisplay/installation"}]},{"product":"Ducky Radio","icon":"radio","pages":[{"title":"Ducky Radio","href":"/projects/ducky_radio/introduction"}]},{"product":"Spoofify","icon":"spotify","groups":[{"group":"Getting Started","icon":"hand-wave","root":{"title":"Introduction","href":"/projects/spoofify/introduction"},"pages":[{"title":"Introduction","description":"Learn the basics of Spoofify","href":"/projects/spoofify/introduction"},{"group":"Ducky-Hosted","icon":"duck","root":{"title":"Ducky-Hosted Spoofify","sidebarTitle":"Starter Guide","icon":"book-open","description":null,"href":"/projects/spoofify/ducky_hosted/starter_guide"},"pages":[{"title":"Ducky-Hosted Spoofify","sidebarTitle":"Starter Guide","icon":"book-open","description":null,"href":"/projects/spoofify/ducky_hosted/starter_guide"}]}]},{"group":"User Guides","icon":"book-open","pages":[{"title":"Custom Spoofify Themes","sidebarTitle":"Custom Themes","description":"Import custom or premade themes to customize Spoofify's Now Playing card!","icon":"palette","href":"/projects/spoofify/guides/importing_themes"},{"title":"Spoofify Twitch Commands","sidebarTitle":"Twitch Commands","icon":"twitch","href":"/projects/spoofify/guides/twitch_commands"}]},{"group":"Browser Overlays","icon":"eye","root":{"title":"Overlays","href":"/projects/spoofify/overlays"},"directory":"card","pages":[{"title":"Now Playing Card","href":"/projects/spoofify/overlays/now_playing_card"}]},{"group":"API Reference","icon":"globe","root":{"title":"Api Reference","href":"/projects/spoofify/Api_Reference"},"directory":"card","pages":[{"title":"API Introduction","sidebarTitle":"Introduction","icon":"hand-wave","href":"/projects/spoofify/Api_Reference/introduction"},{"group":"Endpoints","icon":"webhook","pages":[{"title":"Get Current Track","api":"GET https://{you}.spoofify.live/api/now-playing","href":"/projects/spoofify/Api_Reference/endpoint/get/current_track"},{"title":"Get Queue","api":"GET https://{you}.spoofify.live/api/queue","href":"/projects/spoofify/Api_Reference/endpoint/get/queue"},{"title":"Search for Track","api":"GET https://{you}.spoofify.live/api/spotify/search/{query}","href":"/projects/spoofify/Api_Reference/endpoint/get/search"},{"title":"Add Track to Queue","api":"POST https://{you}.spoofify.live/api/spotify/queue/add-track/{track_uri}","playground":"simple","href":"/projects/spoofify/Api_Reference/endpoint/post/queue_track"}]},{"group":"Types","icon":"brackets-curly","pages":[{"title":"BasicTrack","sidebarTitle":"BasicTrack","href":"/projects/spoofify/Api_Reference/types/BasicTrack"},{"title":"SpotifyPlaybackState","sidebarTitle":"SpotifyPlaybackState","href":"/projects/spoofify/Api_Reference/types/SpotifyPlaybackState"},{"title":"SpotifyTrack","sidebarTitle":"SpotifyTrack","href":"/projects/spoofify/Api_Reference/types/SpotifyTrack"},{"title":"SpotifyArtist","sidebarTitle":"SpotifyArtist","href":"/projects/spoofify/Api_Reference/types/SpotifyArtist"},{"title":"SpotifyUser","sidebarTitle":"SpotifyUser","href":"/projects/spoofify/Api_Reference/types/SpotifyUser"}]}]},{"group":"🦆 Back Home","root":{"title":"Docs Home","sidebarTitle":"Home","href":"/index"},"pages":[{"title":"Docs Home","sidebarTitle":"Home","href":"/index"}]}]}]},"basePath":"","title":"Ducky-Hosted Spoofify - Ducky Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}