TikTok Shop listing video: one per product, 5 MB, made with Sume

TikTok Shop's listing policy allows one video per product, 5MB at most. How to size an AI product clip to fit with Sume, and what Sume cannot control.

5 min readSume
All posts

TikTok Shop's Product Listing Policy lets a seller attach one video to each product listing, and that file must not exceed 5MB. A short, low-resolution clip from Sume's video API may fit, but Sume has no bitrate or quality knob, so you generate small, measure the file, and regenerate or cut if it is over.

The numbers below come from the Product Listing Policy, read 2026-10-02. The Sume side comes from the docs for video generation, video trim and video filter.

What does TikTok Shop's listing policy say about the video?

The policy page is short on video. It says what the sources below quote, and nothing about aspect ratio, duration or codec, so this post does not invent any.

  • Sellers may upload up to 1 video for each product listing.
  • That video must not exceed 5MB.
  • It must comply with the TikTok Shop Content Policy and Community Guidelines.
  • The page points to a separate AI-generated content policy for listing images, covered in its own section below.

How many seconds fit in 5 MB?

A file size cap is an average bitrate cap in disguise. Treating 5 MB as 5,000,000 bytes (40 megabits), the ceiling for the whole file, audio included, falls as the clip gets longer.

This is plain arithmetic, not a promise about any Sume output. Real files vary with motion, texture and audio, and a busy scene eats the budget faster than a still product on a plain surface.

Average bitrate ceiling for a 5 MB file (arithmetic, read 2026-10-02)
Clip lengthAverage ceiling (video plus audio)What it means
4 s10 Mbit/sComfortable at low resolution
8 s5 Mbit/sWorkable for a calm product shot
15 sAbout 2.7 Mbit/sTight; expect to lower resolution
30 sAbout 1.3 Mbit/sUnlikely for anything with motion

Which Sume settings keep a clip small?

Sume does not let you pick a bitrate. The video trim and video filter routes refuse client fields such as codec and crf with ffmpeg_fields_rejected, because the server compiles ffmpeg itself. What you control is length and pixels.

At generation time, read GET /v1/videos/models for each model's supported_resolutions and supported_durations. In the docs, seedance-2.5 accepts 4 to 30 seconds at 480p, 720p and 1080p, and gemini-omni-flash-1.1 accepts 3 to 10 seconds from 360p up. The lowest resolution and shortest duration are your best odds.

After generation, video trim with precision: exact re-encodes the clip and accepts an output of width and height from 256 to 2160 and an fps of 24, 25, 30 or 60. A shorter cut at a lower frame rate and smaller frame is the second lever. Each trim is a $0.02 job per the docs, which says to confirm the live rate in GET /v1/catalog.

How do I generate small and check the size?

Submit a short 480p job, then check the size of the finished file before you upload anything. The aspect ratio here is a placeholder, because the policy page does not state one; use the ratio your listing layout needs.

If content-length is above 5,000,000, cut the clip shorter or re-run at a lower resolution. There is no way to ask Sume for a target size.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: listing-clip-sku-1042" \
  -d '{"model":"seedance-2.5","prompt":"Slow turn of the product on a plain table, soft daylight","resolution":"480p","duration":6,"aspect_ratio":"9:16"}'

# once completed, check the size of the downloaded file (or its content-length header)
curl -sI -H "Authorization: Bearer $SUME_API_KEY" \
  "https://api.sume.com/v1/videos/$JOB_ID/content?index=0" | grep -i content-length

How do I run this across a catalog?

Treat each SKU as its own job. Send a distinct Idempotency-Key per SKU, such as the SKU id plus a version number, because the docs say a replay with the same key returns the original job instead of billing a second generation. That makes a retry after a network error safe.

Build the size check into the loop. After each job completes, measure the file, and queue a shorter or lower-resolution re-run only for the SKUs that went over. Give the re-run a new key, because the same key would just replay the first job.

Expect some SKUs to need a second pass. A clip with a moving hand, fabric or liquid costs more bits than a rigid object on a plain table, so the same settings will not land every product under the cap.

What must the listing video still show?

Size is the easy part. TikTok Shop's page on AI-generated content in listing images says AI is allowed when it accurately represents the real product, and bars changing size, color, material or shape, or showing features the product does not have. A listing video that fits in 5 MB but invents a feature is still a violation.

Sume does not upload to TikTok Shop. You download the clip and attach it to the listing yourself. For the wider video rules, see TikTok Shop's AI video rules on product accuracy and the slideshow rule.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume