Wix Stores product video: 50 MB limit and an AI clip

Wix Stores takes AVI, MP4, MOV or MPEG product video up to 50 MB. Measure a Sume clip, then shorten it, drop audio or conform its size with video trim.

5 min readSume
All posts

Wix Stores accepts product videos in AVI, MP4, MOV and MPEG, up to 50 MB each (Wix Help Center, read 2026-10-03). A short Sume clip will usually fit, but the API does not let you set a bitrate, so measure the file before you upload, and shrink it with the video trim endpoint if it is over.

This post is about the product-page video in Wix Stores. It is a different limit from Wix Video's, which another post in this series covers.

What does Wix Stores say about product video?

The Help Center article covers images, GIFs and videos in one place. For video it names the formats and the size, and gives the dashboard path: Products, select a product, Add Media, then pick a video or Upload Media (read 2026-10-03). It also says a video hosted on a platform like YouTube cannot be uploaded as media. You add that link to the product description or the product info section instead.

Wix Stores product video facts, read 2026-10-03
ItemWhat the Wix page says
Video formatsAVI, MP4, MOV, MPEG
SizeUp to 50 MB
Add a fileProducts, select product, Add Media, Upload Media
External videoLink it in the description or info section
Media per optionLink to each option choice, not to each variant
Image ratios16:9, 3:2, 4:3, 1:1, 3:4, 2:3, 9:16; square is recommended for mobile

How do you check the size of a Sume clip?

Download the finished video and measure it. The Sume video flow is: submit to POST /v1/videos, poll GET /v1/videos/{id} until it is done, then read the file from GET /v1/videos/{id}/content?index=0. The script below does the last step and compares the result with 50 MB. It uses 50,000,000 bytes, the stricter reading of Wix's 50 MB, so a file that passes here passes under either definition. The video id is the argument. Nothing is written to disk unless the file fits.

import os, sys, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
job = sys.argv[1]
r = requests.get(f"https://api.sume.com/v1/videos/{job}/content?index=0",
                 headers=H, timeout=120)
r.raise_for_status()
size = len(r.content)
print(f"{size / 1e6:.1f} MB")
if size <= 50_000_000:
    open(f"{job}.mp4", "wb").write(r.content)
    print("fits the Wix Stores limit")
else:
    print("over 50 MB: shorten, drop audio, or conform to a smaller size")

What can you change at generation time?

Two parameters move file size in the direction you want. duration sets the length in whole seconds, and resolution picks the output tier. Models differ, so read supported_durations and supported_resolutions from GET /v1/videos/models before a batch. Seedance 2, for example, lists 480p, 720p and 1080p and 4 to 15 seconds there. For a product-page loop, five seconds at 720p is a sensible start.

generate_audio is also a request field and defaults to the model's capability. A silent product loop does not need a soundtrack, and Wix's page does not ask for one. You can turn audio off at generation, or keep one source clip with sound and drop the audio in the trim step, which keeps your options open if the same clip also goes to a channel that plays sound. Either way, the size check at the end decides.

How do you shrink a clip that is over 50 MB?

Video trim cuts a range out of a Sume-hosted clip into a new MP4, and its optional fields cover exactly what you need. audio: "drop" removes the soundtrack. output conforms the result to a width, height (each 256 to 2160) and fps of 24, 25, 30 or 60, and works only with precision: "exact", the default frame-accurate re-encode. The Sume docs list a public rate of $0.02 per job and say to confirm it live in GET /v1/catalog.

Lower resolution and frame rate normally shrink a file, but the docs make no size promise, so run the size check again on the output. The source must be a media.sume.com clip in your workspace, which a Sume-generated video is. For a file from elsewhere, import it first with POST /v1/media-imports; off-host URLs are refused. Trim defaults to async, so pass mode: "sync" to wait up to 30 seconds for a finished job, or poll.

curl -sS -X POST https://api.sume.com/v1/video-trim \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: wix-trim-sku-1042-v1" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
    "start": 0,
    "duration": 6,
    "audio": "drop",
    "output": {"width": 720, "height": 720, "fps": 24}
  }'

What should you check before you upload to Wix?

There is no GET /v1/video-trim/{id}. Poll the job at GET /v1/jobs/{id}/status, then read GET /v1/jobs/{id}/result. It returns kind: video_trim with a new video_url and duration_seconds, and the source is untouched. Download that new file and run the size check again before you upload it. The same result also carries an output field and optional warnings, for example when an end point past the source was clamped, so log both.

  • Measure every file. Do not assume a 5 second clip is under 50 MB.
  • Keep one source clip and make the trimmed copy from it, so you can redo the shrink at a different size.
  • Read warnings[] on the trim result before you trust the cut.
  • Add a square image alongside the video, since Wix recommends 1:1 for mobile.
  • Use a distinct Idempotency-Key per SKU and version for both the generation and the trim.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume