Free · runs on your device
Spotify Canvas Maker
Beat-matched continuous loop Canvas for Spotify. Made in your browser — nothing is uploaded.
Loading the canvas engine…
How to upload it
- Open Spotify for Artists — the desktop web app or the mobile app — and go to Music.
- Open the track (Canvas is set per track) and choose Add Canvas, then pick the MP4 or JPG this page gave you.
- You need an Admin or Editor role on that artist's team, and the artist must be the first main artist on the track — a featured artist cannot add a Canvas.
- If the desktop web upload errors or hangs on a file that passes the checker, try the Spotify for Artists mobile app — it is a separate upload path, so it is worth one attempt before you change the file.
- Give it time. A new Canvas does not always appear in the Spotify app immediately.
We can't post to Spotify for you — there is no public Canvas API. This page makes the file and checks it; the upload is yours to do in Spotify for Artists.
What this page actually does
Every frame you see in the preview is drawn by the same renderer that writes the export, at the same aspect ratio, from the same settings. There is no server render, no queue and no "generating" step: change a look, a theme or the energy and the next frame is already different. The export changes the pixel count and steps the clock one frame at a time; every other setting is the same object the preview is already using. The preview is capped at a 540×960 pixel budget because 1080×1920 in real time missed the 33.3 ms frame budget on every look when it was measured; the file itself is written at full size.
The loop is closed by construction. Each look is built on a cyclic clock, so the last frame flows into the first rather than being cross-faded into it, and the page measures the join and prints the number it got. That is what the seam readout in the header is: 100 means the wrap is no bigger a step than any other frame of the same loop. Hard cut is the one exception — it resets on purpose, so the readout says cut rather than scoring it.
Loop length in bars, not in seconds
Drop the song the Canvas is for and the page reads its tempo in your browser — the audio is decoded to measure onset periodicity and then discarded, and it is never uploaded. The loop is then set to a whole number of that track's bars inside Spotify's 3–8 second window, so the motion carries the same pulse as the music. Bar counts that cannot fit say why when you tap them, rather than quietly changing to something else.
Spotify does not play a Canvas in time with the audio, and nothing here says it does. The Canvas loops on Spotify's own clock. What a bar-length loop buys you is a loop whose internal rhythm matches the record instead of fighting it.
What Spotify publishes, and what it doesn't
Spotify's Canvas guidelines are short: MP4 or JPG, 3–8 seconds, vertical 9:16, “between 720px – 1080px tall”. There is no published codec, bitrate, frame-rate or file-size rule, and no published line about audio at all — so this maker writes a video track and nothing else, which takes that variable off the table rather than guessing at it. Spotify also has content and taste rules (avoid rapid cuts and intense flashing, don't stamp the artist or song name on the frame) that no file check can predict.
That is why the result panel reads the finished bytes rather than repeating your settings back at you: the MP4 is parsed by the same engine as the Canvas checker, and the badge appears only if that parse earns it. If your browser cannot write H.264 — Firefox cannot — you are told at load, and offered a still JPG, which Spotify also accepts. You will never be handed a WebM wearing an .mp4 name.
More free tools
FAQ
What size does a Spotify Canvas have to be?
Spotify publishes four rules: MP4 video or JPG still, 3 to 8 seconds, vertical 9:16, and “between 720px – 1080px tall”. That last line reads oddly against 9:16 — a vertical frame 1080 px on its short edge is 1920 px tall — so this maker writes 720×1280 and 1080×1920, taking 720–1080 as the short edge. Every export is read back and checked before you are shown a result.
Does the Canvas play in sync with my song?
No. Spotify loops the Canvas on its own clock, and nothing here claims otherwise. What the bar lock does is make the loop a whole number of your track's bars, so the motion has the same pulse as the music rather than drifting against it.
Is my song or my artwork uploaded anywhere?
No. The song is decoded in your browser only to read its tempo, the artwork is drawn straight into a canvas element, and the MP4 is encoded on your own device. No file, file name or image ever leaves the browser, and there is no account to make. The one thing the page sends is a single anonymous count when an export finishes — the format and the aspect ratio, nothing else.
Can this upload the Canvas to Spotify for me?
No, and nothing can — there is no public Canvas API. You add the Canvas yourself in Spotify for Artists, on the track's page. This tool makes the file and checks it; the upload is yours.
Why does my browser give me a JPG instead of an MP4?
Firefox cannot write H.264 MP4 from a canvas. Rather than hand you a WebM with an .mp4 name — a WebM is not an MP4 whatever the name says, and Spotify's published rule is MP4 or JPG — the page detects it at load and offers a still JPG instead. Spotify accepts a JPG Canvas.
Will Spotify definitely accept the file?
Nobody can tell you that. The badge on the result says the file meets Spotify's published spec, because the finished bytes were parsed and checked. Spotify also reviews the content itself and does not publish everything it enforces, so a green result is not a promise of acceptance.