create_branded_video
posts:write
Turn an uploaded video into an on-brand MP4: a vertical reel (1080×1920) for Instagram Reels, Facebook Reels, YouTube Shorts and TikTok, or with branding.format a 4:5 portrait or square feed video, or a 16:9 landscape video (1920×1080) for YouTube, X and LinkedIn. It can burn in subtitles transcribed from the speech (highlight, boxed or clean style), add a progress bar along the bottom or around the frame, and put the brand logo, name or handle at the bottom; a video of another shape sits on a blurred copy of itself or is cropped to fill. Upload the video first (create_media_upload then complete_media_upload, or import_media_from_url) and pass its assetId.
Videos can be up to 3 minutes. Choices left out use the brand's saved video style; saveAsDefaults saves this render's choices as that style. Rendering runs in the background for about a minute and costs credits (roughly 1 to 2 per minute of video).
Call get_branded_video with the returned id until status is done, then pass its postMedia as media to create_draft_post or update_post.
Input
videoobjectrequiredThe video to brand: an assetId from create_media_upload / complete_media_upload, import_media_from_url or list_media.
Fields
assetIdstring (uuid)required
brandingobjectChoices for this render; anything left out uses the brand's saved video style.
Fields
progressBarstringnone, bottom (a bar along the bottom edge) or border (a line that runs around the frame as the video plays).
one of
none,bottom,borderprogressColorstring | nullProgress bar colour as hex; null or left out uses the brand accent.
subtitlesobjectFields
enabledbooleanTranscribe the speech and burn in subtitles.
stylestringhighlight (bold capitals, each word lights up as it's said), boxed (lines on a brand-colour box) or clean (white text, soft shadow).
one of
highlight,boxed,cleanpositionstringlower (above the footer, the usual place) or middle.
one of
lower,middle
footerobjectFields
logobooleanShow the brand logo at the bottom.
namebooleanShow the brand name at the bottom.
handlestring | nullSocial handle to print at the bottom, e.g. "@adventurai"; null hides it.
fitstringFor a video that isn't the format's shape: blur (the whole video over a blurred copy of itself) or crop (fill the frame, trimming the edges).
one of
blur,cropformatstringreel (1080×1920, 9:16, for Reels, Shorts and TikTok), portrait (1080×1350, 4:5, for feeds), square (1080×1080) or landscape (1920×1080, 16:9, for YouTube, X and LinkedIn).
one of
reel,portrait,square,landscape
saveAsDefaultsbooleanSave the resulting choices as the brand's video style for later renders.
languagestringISO-639-1 code of the spoken language, e.g. en; detected when left out.
Permission
Needs the posts:write scope: create drafts. It changes your workspace, so clients may ask you to confirm each call.
Example call
Your assistant sends this for you. It is shown so you can see the shape of a call, with placeholder values for the required fields.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_branded_video", "arguments": { "video": { "assetId": "3f8e2c1a-0000-4000-8000-000000000000" } } }}Same action over the REST API
The tool runs POST /v1/orgs/{orgId}/marketing/videos/branded as the signed-in user, with the same validation, approval rules and limits. See it in the Videos API reference.