Adobe Commerce product video: link YouTube or Vimeo, no upload
Adobe Commerce takes a YouTube or Vimeo link for product video, not an MP4 upload. Make the clip with Sume, host it, paste the URL. Roles and a curl.

You cannot upload an MP4 straight into an Adobe Commerce product. The Admin asks for the URL of a YouTube or Vimeo video, and for YouTube it also needs an API key in the store configuration (Adobe Commerce documentation, last updated May 14, 2026, read 2026-10-03). So an AI product clip is a three-step job: generate the file, publish it to a channel you control, then paste the link into the product's Images and Videos section.
This post covers the Adobe side field by field and the one Sume call that makes the clip.
What does the Adobe Commerce Add Video dialog ask for?
Adobe's page lists three setup steps. First, create a YouTube Data API v3 key in your Google account. Second, paste it into Stores > Settings > Configuration > Catalog > Catalog, in the Product Video section, then save and refresh the cache. Third, open the product, expand Images and Videos, click Add Video and fill the dialog (all read 2026-10-03).
The fields are small, which makes them easy to fill from a spreadsheet of clip URLs.
| Field | What Adobe says | Where the value comes from |
|---|---|---|
| URL | The URL of the YouTube or Vimeo video | Your channel, after you upload the Sume clip |
| Title | The video title | Your catalog title for the SKU |
| Description | The video description | Your catalog copy |
| Preview Image | An uploaded image used as the preview in your store | A packshot or a still you choose |
| Get Video Information | Fetches the metadata stored on the host server | Optional, replaces typing title and description |
Which roles can a product video take?
Each video gets roles that decide where it is used. Adobe lists Base Image, Small Image, Swatch Image, Thumbnail and Hide from Product Page (read 2026-10-03). Pick Base Image only if the video should lead the gallery. Leave the others unticked and the clip sits as an extra gallery item.
If you work in a specific store view rather than All Store Views, each role shows a Use Default Value button that inherits the assignment from the default scope. Set roles once at the default scope for a bulk load and override only where a store view needs a different lead.
How do you generate the clip with Sume?
Use the asynchronous video API with the product photo as the first frame, so the clip starts on the real product rather than an invented one. frame_images takes an entry with frame_type: first_frame. Seedance 2 lists a 1:1 aspect ratio, 480p, 720p and 1080p, and 4 to 15 seconds in GET /v1/videos/models, so a square 720p clip fits a product gallery tile. Confirm the lists for the model you pick before a batch.
Submit, then poll the polling_url until status is completed, then download from the content URL. The Sume docs show polling every 30 seconds.
curl -sS -X POST "https://api.sume.com/v1/videos" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sku-1042-gallery-clip-v1" \
-d '{
"model": "seedance-2",
"prompt": "Slow turntable move around the product on a clean surface, soft daylight",
"frame_images": [{
"type": "image_url",
"image_url": {"url": "https://cdn.example.com/sku-1042.jpg"},
"frame_type": "first_frame"
}],
"aspect_ratio": "1:1",
"resolution": "720p",
"duration": 5
}'
curl -sS "https://api.sume.com/v1/videos/$JOB_ID" \
-H "Authorization: Bearer $SUME_API_KEY"
curl -sS "https://api.sume.com/v1/videos/$JOB_ID/content?index=0" \
-H "Authorization: Bearer $SUME_API_KEY" --output sku-1042.mp4What does Sume not do for this workflow?
The Sume video API returns a file. The documentation describes no step that publishes it to YouTube or Vimeo, so that upload is yours: by hand, or with the platform's own upload tooling. This is the real cost of Adobe's link-only design, and it is worth planning for before a catalog run.
Adobe also notes that the preview image shown after upload is generated by the external video provider and cannot be edited from the Admin (read 2026-10-03), so the Preview Image you upload is not the final say.
How do you run this across a catalog?
Treat each SKU as one row: product photo URL in, job id and final video URL out. Submit one request per SKU with an Idempotency-Key built from the SKU and a version number, store the job id in your sheet, and poll each job until it reports completed. Sume queues generation jobs beyond your plan's processing limit instead of rejecting them, and only returns 429 queue_full when the queue itself is full, so a loop that backs off on that code is enough (see the generation admission page in the Sume docs).
Download each finished file the same day and upload it to your channel. Then paste the links in one pass, store view by store view if you override roles. Doing the paste last keeps a failed generation from leaving half-filled product pages.
What should you check before you load the catalog?
Run one product end to end first: generate, upload, paste the link, and view the product page in a store view. Then script the rest.
- Do not rely on autoplay. Adobe says browser autoplay policies are outside Commerce's control and recommends testing each supported browser (read 2026-10-03).
- Keep the YouTube API key alive. Adobe warns that YouTube may disable API access for accounts inactive for more than 90 days and suggests a scheduled request to keep it active (read 2026-10-03).
- Send a distinct Idempotency-Key per SKU and version so a retried submit replays the same job instead of billing a second clip.
- Read
supported_aspect_ratiosandsupported_durationsfromGET /v1/videos/modelsfor the model you chose, because limits differ by model.
Sources
Related posts
More in Integrations
- Cloudflare K2 as a buffer in front of Sume bulk runs
K2 streams hold your video requests until a consumer submits them to Sume bulk runs. How to ack, nack and park rows so a redelivered batch never runs twice.
- Cloudflare Stream captions API: 12 languages, or upload WebVTT
Cloudflare Stream generates captions for 12 languages. For others, PUT a WebVTT built from a Sume transcript. Rules, status values and a script.
- Comfy MCP and Sume MCP in one Claude Code session
Connect Comfy's cloud MCP and Sume's hosted MCP to one Claude Code session: add both servers, read the auth and billing of each, and route work between them.
- Google lifestyle_image_link vs additional_image_link
Put the AI scene in lifestyle_image_link, angles in additional_image_link, and host stable URLs. Limits, a Sume request and a feed snippet.
Written by Sume