For when the user has the script and the visuals. Revid only handles voice + captions + assembly. No stock content is mixed in.
media.useOnlyProvided and
use revid-script-to-video with media.provided.FieldRequiredNotestextyesThe scriptmedia.provided[]yesAt least 3 items recommended; URLs must be publicaspectRationoDefault 9:16``voiceIdnoDefault voice if omitted
MediaItem shape:
json
{ "url": "https://…", "type": "image" | "video" | "audio", "title": "optional", "noReencode": false }
Use type: "image" for stills (Revid will optionally pan/zoom them via
media.turnImagesIntoVideos). Use type: "video" for clips. Keep clip
duration roughly comparable to the script length.
media.provided[].url returns 200 and a video/image
content-type./render with media.useOnlyProvided: true./status.http
POST /api/public/v3/render
Host: www.revid.ai
Content-Type: application/json
key: $REVID_API_KEY
json
{
"workflow": "script-to-video",
"source": {
"text": "{SCRIPT}"
},
"aspectRatio": "9:16",
"voice": { "enabled": true, "voiceId": "aria-en-us", "stability": 0.6, "speed": 1.0 },
"captions": { "enabled": true, "position": "middle", "autoCrop": true },
"music": { "enabled": true, "syncWith": "beats" },
"media": {
"type": "custom",
"useOnlyProvided": true,
"turnImagesIntoVideos": true,
"mergeVideos": false,
"animation": "soft",
"provided": [
{ "url": "https://cdn.example.com/clip-1.mp4", "type": "video" },
{ "url": "https://cdn.example.com/clip-2.mp4", "type": "video" },
{ "url": "https://cdn.example.com/hero.jpg", "type": "image" }
]
},
"options": {
"summarizationPreference": "no-summarization",
"useOnlyProvidedMedia": true,
"soundEffects": false,
"hasToGenerateCover": true
},
"render": { "resolution": "1080p", "frameRate": 30 }
}
Both media.useOnlyProvided and options.useOnlyProvidedMedia should be
true — they belong to slightly different paths in the legacy code and setting
both is the safest way to forbid stock fill.
SymptomFixFinal video pads with stock anywayOne of the two flags wasn't honored. Make sure both media.useOnlyProvided: true AND options.useOnlyProvidedMedia: true are set.Video too short / dead airNot enough assets. Add more provided items or set mergeVideos: true to loop the existing clips.Wrong asset on a particular linePre-order assets in the array roughly in narrative order — Revid uses array order as a hint.Asset URL 403 / 404Make sure assets are public (signed URLs work as long as they don't expire mid-render).
revid-script-to-video for stock visuals.revid-shopify-product-promo for
the product-page variant.