Guides

    Spotify Canvas Loops: Eight Seconds That Sell a Track

    Spotify Canvas is 3-8 seconds, vertical, and loops on repeat. A clip generated to loop beats one trimmed from footage that was never built to.

    Versely Team7 min read

    A Spotify Canvas plays behind a track for as long as a listener has the song open, which means an eight-second clip might loop dozens of times in a single play. Nothing else in short-form video works this way — a TikTok gets watched once, maybe twice; a Canvas gets watched on a cycle, over and over, for the length of the song. That makes the loop point the entire craft. A clip that plays fine once and stutters on the second pass isn't a Canvas that mostly works — it's a Canvas that's broken on every listen after the first, which is most of them.

    Vinyl record spinning on a turntable in moody studio lighting

    The spec, stated plainly

    Spotify's own Canvas guidelines are tight and specific: clips run 3-8 seconds long, in a vertical 9:16 ratio, between 720px and 1080px tall, delivered as an MP4 or JPG file. There's no room in that spec to hide a weak loop behind resolution or runtime — eight seconds is the absolute ceiling, and whatever happens at the seam between the last frame and the first repeat is going to be visible almost immediately after upload, not buried somewhere deep in a longer piece.

    Three loop behaviors, three different crafts

    Spotify names three ways a Canvas is built to repeat, and they're genuinely different disciplines, not three names for the same trick. Continuous Loop is described as footage that "has a satisfying seamless loop" — the clip cycles with no visible seam at all, the hardest of the three to pull off because every frame has to connect back to the start convincingly. Hard Cut instead "has clear edit points (they can be artfully disguised)" — an honest cut between the end and the beginning, dressed up enough that it reads as intentional rather than accidental. Rebound is the mechanical one: it "plays your clip forwards, then reverses it," which Spotify itself calls "an easy way to get a smooth loop" — because a clip played backward against itself always meets its own last frame exactly, by definition, with no design work required to make the seam invisible.

    Why trimming a longer clip defaults to a bad seam

    The obvious shortcut — pull an 8-second window out of a clip generated for something else, a 15-second product shot or a longer establishing scene — sets you up for the worst version of Hard Cut almost by accident. Nothing about that trim point was designed to match the trim's own starting frame; the subject's likely mid-motion, the camera's likely mid-move, and frame 1 of your selection has no relationship at all to whatever frame comes right before it once the loop restarts. You can get lucky with a static, slow-moving shot. You can't engineer it that way on purpose, because a trim is a subtraction from something else, not a construction built around the constraint you actually have — an eight-second window that has to meet itself.

    Generating for the loop, not around it

    The construction that actually solves this is first-last-frame generation: supply a start image and an end image, and the model generates the motion connecting them rather than improvising an open-ended shot and hoping it lands somewhere useful. Versely's own reference on the technique states the loop case directly — "Same image in both slots gives you a loop with motion in the middle" — which is a Continuous Loop by construction, not by luck. Set the first frame and the last frame to the same source image, and whatever the model generates in between is guaranteed to arrive back where it started, because that was the actual constraint it was generating against the whole time. The prompt still does real work here — it decides how the model travels between the two identical bookends, a slow push-in, a drifting pan, a shift in light — but the seam itself is handled structurally, before a single frame renders.

    Rebound is worth treating as the fallback rather than the default, precisely because it's mechanical where Continuous Loop is designed: generate roughly half your target Canvas length as a single directional motion — a push, a pan, a reveal — and let the forward-then-reverse playback complete the loop on its own. It costs you the ability to have anything happen twice in one direction, but it removes the loop-matching problem entirely, which is a reasonable trade on a deadline.

    Silent by design, not by accident

    Spotify's guidelines are specific about content, not just format: "Choose footage without talking, singing, or rapping," because, as the guidance puts it, "the clips are only 3-8 seconds long, so won't sync with the lyrics." A Canvas was never going to carry dialogue or lip-synced performance in any coherent way at that length, which means the generation brief is inherently a pure-motion one — texture, light, movement, atmosphere — rather than a performance to capture. That's a genuine advantage for an AI-generated loop specifically: a model asked for atmospheric motion between two matched frames has a far easier, more forgiving job than one asked to hold a face through a lip-synced line, and it's the exact brief the format already wants.

    Two models, two budgets

    VEO First Last Frame supports first-last-frame generation at 4s, 6s, or 8s — all three durations sit inside Canvas's window without adjustment — at up to 4K output and includes 9:16 among its supported aspect ratios, so no separate crop or reframe pass is needed before upload. Flux 3 First Last Frame to Video covers a wider duration range starting at 5 seconds and extending well past Canvas's ceiling, but its 5s, 6s, 7s, and 8s settings land squarely inside the window too, at up to 1080p and with 9:16 also supported. Either one takes a start frame and an end frame directly rather than a single image — set both to the same source photo for a Continuous Loop, or to two different frames a half-clip apart if you're building toward a Rebound instead.

    A Versely walkthrough: building a Continuous Loop on purpose

    The concrete version: attach one reference photo — the album art, a still from the artist's own footage, whatever the visual anchor for the release is — and prompt "Generate a 6-second video using this photo as both the first and last frame, vertical 9:16, with a slow atmospheric drift in the motion — nothing that resets sharply at the end." That routes to generate_video_from_image with first_frame_url and last_frame_url both set to the same attached image, duration: "6s", and aspect_ratio: "9:16", which is exactly the first-and-last-frame transition capability built for this. The output arrives already inside Canvas's technical window — no separate export or crop step — and because the last frame matches the first by construction, the loop is Continuous by design rather than something you're hoping holds up on the second play.

    This is one small piece of a release cycle that usually needs several other pieces around it — Versely's guide for musicians covers the wider set of clips a release tends to need, from the hook-first promo cut down to a Canvas loop like this one.

    Takeaway

    A Canvas doesn't get watched once — it gets watched on repeat for the length of a stream, which makes the loop point the whole assignment rather than a finishing touch. Trimming a window out of footage built for something else leaves that seam to chance. Generating with the same image in the first-frame and last-frame slots doesn't — the loop is guaranteed by how the clip was built, not discovered after the fact, and it fits Spotify's eight-second ceiling without a single frame going to waste.