BigCommerce product videos API takes YouTube only: host your AI clip
BigCommerce's product videos API accepts only YouTube ids, not MP4 URLs. Make the clip with Sume, publish it to YouTube, then store the video_id.

BigCommerce's catalog API stores product videos by YouTube id. Per the Product Videos reference, read 2026-10-02, "currently, only YouTube is supported": the type is youtube and you send a video_id. A Sume MP4 on media.sume.com cannot be attached to a BigCommerce product through this endpoint, so the clip has to be published on YouTube first.
Sume facts come from Video generation, Jobs and results and Media inputs. Sume's docs do not mention BigCommerce or YouTube publishing, so the upload step below is yours.
What does the BigCommerce endpoint store?
The list route is GET /stores/{store_hash}/v3/catalog/products/{product_id}/videos. A video record has an id, a title, a description, a video_id, a length, a sort_order, a product_id and a type that is restricted to youtube. If you leave title or description blank, BigCommerce fills them in from the video's host site, and length is likewise filled in from data on the host.
sort_order controls display priority and a higher value means a lower priority, which is the reverse of what many people expect. Lists default to 50 items per page and accept a limit. Requests need an X-Auth-Token with the store_v2_products scope to modify or store_v2_products_read_only to read.
| Field | Meaning | Note |
|---|---|---|
| type | Video host | Only youtube |
| video_id | YouTube identifier | Not an MP4 URL |
| length | Video length | Filled in from the host site |
| sort_order | Display priority | Higher value, lower priority |
What is the path from a Sume clip to the product?
Generate and wait: Sume video generation is asynchronous, so submit to POST /v1/videos, poll until completed, and download the file from the content URL. Then upload that MP4 to your own YouTube channel with whatever tool you use for YouTube, copy the resulting id, and send it to BigCommerce as video_id.
Two details to plan for. First, the video's visibility on YouTube decides whether shoppers can play it on your storefront, which BigCommerce's page does not discuss. Second, a clip made with synthetic imagery may need a disclosure when you upload; see the YouTube synthetic media post for how that field works.
How do I read the id and check the product?
The snippet lists the videos already on a product and includes a small, runnable helper that turns a YouTube watch, short or share link into the id BigCommerce wants. It covers three link shapes only; test it against the links your team actually pastes.
# Read what a product already has (store hash, product id and token are yours)
curl -s "https://api.bigcommerce.com/stores/$STORE_HASH/v3/catalog/products/$PRODUCT_ID/videos" \
-H "X-Auth-Token: $BC_TOKEN" -H "Accept: application/json"
# The field BigCommerce wants is the YouTube id, not an MP4 URL:
python3 - <<'PY'
from urllib.parse import urlparse, parse_qs
def youtube_id(url):
u = urlparse(url)
if u.hostname == "youtu.be":
return u.path.lstrip("/")
if u.path.startswith("/shorts/"):
return u.path.split("/")[2]
return parse_qs(u.query).get("v", [""])[0]
print(youtube_id("https://www.youtube.com/watch?v=dQw4w9WgXcQ"))
print(youtube_id("https://youtu.be/dQw4w9WgXcQ"))
PYWhat about other BigCommerce media?
Images are a different path from videos, and this post only covers the videos endpoint. BigCommerce's page that I read describes the product video resource, not image upload, so check its image documentation separately before you plan a combined job.
If your storefront theme embeds YouTube players, the clip's length and captions come from the video on YouTube. Add captions on YouTube if you need them; Sume also has a captions route for burning text into a file, described in its docs, but that does not create a YouTube caption track. Decide which one your storefront needs before generating a hundred clips, and run a single product end to end first.
Is YouTube-only a limit for ads and bulk work?
It is a limit for storefront video on BigCommerce, not for the clip. The same Sume MP4 can still go to a marketplace, a Meta ad or an email, since those use files. Keep one master per product and treat the YouTube copy as the storefront delivery format.
For bulk catalogs, store a table of SKU, Sume job id, YouTube id and BigCommerce video id. The Sume job id lets you rerun or audit a clip, and the YouTube id is the only value BigCommerce needs. If a generation fails or is canceled, the product just has no video; nothing else breaks.
Sources
Related posts
More in Integrations
- Bluesky image limits: 4 per post, 2 MB each, alt text required
A Bluesky post embeds up to 4 images of 2,000,000 bytes each, and each needs alt text. Make a JPEG under the cap with Sume Images and write the description.
- Bun.serve webhook receiver for Sume: raw body, verify, dedupe
A 24-line Bun.serve receiver for Sume job webhooks: read the raw body first, verify sume-v1, dedupe on job_id, answer 204 before the work. Tested on Bun 1.4.
- Claude Code 2.1.286 prompt count '2 of 5': parallel Sume calls
Claude Code 2.1.286 shows a count like 2 of 5 on stacked permission prompts, oldest first. Five parallel Sume calls make five prompts; script_run is one.
- Claude Code 2.1.287 large MCP results: Sume's include_results answer
Claude Code 2.1.287 fixed paging of large MCP results saved as JSON. For Sume job waves, use jobs_wait include_results and read omitted ids once.
Written by Sume