AI Spotify Canvas generator: make a 3–8 second loop

Spotify asks for a 3–8 second, 9:16 Canvas, 720–1080 px tall. Generate a looping 9:16 clip with AI, then render it at an exact size and length.

5 min readSume
All posts

An AI Spotify Canvas generator makes the short vertical loop that plays in the Spotify mobile app's Now Playing view in place of your album art. Spotify asks for a Canvas 3–8 seconds long, in a vertical 9:16 ratio, 720–1080 px tall, as an MP4 or JPG. With AI, generate a 9:16 clip that starts and ends on the same picture, render it at an exact Canvas size and length, and upload it in Spotify for Artists.

Spotify's specs come from its Canvas guidelines and upload-error help, read on 2026-09-28. Sume facts come from the Video generation and Timeline 1.0 docs. Canvas is different from a Spotify video ad; for ads, see Spotify video ad specs.

What are the Spotify Canvas requirements?

Spotify's help pages list four specs and say that if the length or size is even slightly off, the upload can fail. Its guidelines also advise footage without talking, singing, or rapping (the clip is too short to sync with the lyrics), no rapid cuts or intense flashing graphics, and care at the edges, which may get cut off on some phones. Your song and artist name can stay out, because the app already shows them.

From Spotify's Canvas guidelines and upload-error help, read 2026-09-28.
SpecSpotify asks for
Length3–8 seconds
ShapeVertical, 9:16
Height720–1080 px
FileMP4 or JPG

How do I generate a Canvas loop with AI?

  • Start from one still in 9:16, at a public HTTPS URL, and send it to POST /v1/videos twice in frame_images: as the "first_frame" and the "last_frame". The clip then ends on the picture it starts with, so it can repeat; Seamless loop AI video shows how to check the seam.
  • Send aspect_ratio: "9:16" and a whole-second duration from 3 to 8 that the model lists. The shortest clip is 2 seconds on wan-3.0, 3 on gemini-omni-flash-1.1, 4 on the Seedance models and kling-3, and 5 on the MiniMax H3 models.
  • Prompt slow motion that can come back to where it started, with no one talking or singing.
  • grok-imagine-video-1.5 won't work here: it takes no last frame and no aspect_ratio.
curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: canvas-clip-001" \
  -d '{
    "model": "seedance-2",
    "prompt": "Neon-lit rain falls past a window at night, the reflections ripple slowly, the camera stays still",
    "frame_images": [
      { "type": "image_url", "image_url": { "url": "https://example.com/canvas-still.png" }, "frame_type": "first_frame" },
      { "type": "image_url", "image_url": { "url": "https://example.com/canvas-still.png" }, "frame_type": "last_frame" }
    ],
    "aspect_ratio": "9:16",
    "resolution": "720p",
    "duration": 6,
    "generate_audio": false
  }'

What size should the Canvas file be?

Sume doesn't document the pixel size of a generated clip, and POST /v1/videos takes no pixel size, so render the final file at a size you choose. Timeline 1.0 returns one MP4 at the output.width and output.height you set (even integers from 256 to 2160), as long as audio.duration_seconds says. Its default, 1080×1920, is taller than Spotify's 1080 px limit.

A 9:16 frame 1,080 px tall would be 607.5 px wide, not a whole pixel, so no exact 9:16 frame is 1,080 px tall. The tallest exact one with even edges inside Spotify's range is 594×1056; this example renders 576×1024. The default fit, cover, fills that frame with the clip, audio.mode: "silence" sets the length without an audio file, and the clip's media.sume.com URL comes from GET /v1/jobs/{id}/result:

curl -X POST https://api.sume.com/v1/timeline-1.0/render \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: canvas-render-001" \
  -d '{
    "audio": { "mode": "silence", "duration_seconds": 6 },
    "output": { "width": 576, "height": 1024 },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/canvas-loop.mp4", "start": 0, "duration": 6 }
    ]
  }'

How do I upload it, and what does it cost?

The result's video_url is the MP4, and duration_seconds reports its length. A 6-second, 576×1024 MP4 matches all four specs in Spotify's table. On the web, Spotify's steps are: log in to Spotify for Artists, go to Music, select your track, and click Add Canvas; the Adding a Canvas page covers the mobile app too.

The clip is billed by model at the provider's list price × 1.25. The render reserves one output minute at the Timeline rate, $0.10 for anything up to 60 seconds, and each rate is plus a 5.5% agent fee by default; see API pricing.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume