Generate viral shorts from a long video
Turns one long video into ranked, ready-to-post clips with hooks + virality scores, 9:16 by default (format picks 4:5, 1:1 or 16:9). Provide video_url (direct media) OR source_url (a YouTube/Vimeo/TikTok link). Optional per-job choices: output format, caption style and formatting (italic, underline, strikethrough, uppercase, Light to Bold), clip length, genre, a focus prompt, a timeframe, b-roll and branding; anything left out follows your brand template. Every option is checked before the job is charged: an unknown value is a 422 naming the field. Returns 202 Accepted with a job_uid; poll GET /v1/shorts/{uid}, or pass webhook_url to be told when it is done (job.completed / job.failed, also sent to your registered webhooks). Billed per REQUESTED clip from your API wallet; a wholly-failed job is refunded automatically. Requires scope videos:write.
Authorizations
API key from Developer dashboard (Bearer token).
Body
Direct media URL (provide this or source_url).
Platform link (YouTube/Vimeo/TikTok/Loom/...), downloaded server-side.
Clips to produce (3-20). Billed per requested clip.
Spoken language: a code from GET /v1/languages, or "auto" to detect it. An unknown code is a 422.
"en"
Caption style id for this job (default: your brand template's style). List them with GET /v1/shorts/caption-styles.
"word-pop"
Text formatting on top of the caption style, for this job only. Each switch is optional; leave one out to keep the style's own look.
Target clip length: auto (20-90 s), 30 (12-30 s), 60 (30-60 s) or 90 (60-90 s). Clips always start and end on whole sentences.
auto, 30, 60, 90 What kind of video it is, so the AI knows what makes a good moment. Left out = detected.
podcast, lifestyle, sports, marketing, entertainment, news, education What to look for, in plain words, e.g. 'the moments about pricing' or 'only when the guest is speaking'.
300"the funniest moments"
Only pick clips from this part of the video. Leave end_s out for 'to the end'. Must be at least as long as the shortest clip for clip_length.
Stock b-roll cutaways (clips of 6 s or longer, not in split screen): true = on, false = off even if the brand template has it on, omit = brand template.
false = clean clips with no captions, hook, logo or music (caption_style and caption_format cannot be used then).
Output format (aspect ratio) of every clip: 9:16 vertical (TikTok, Reels, Shorts), 4:5 portrait (Instagram feed), 1:1 square or 16:9 landscape (YouTube, LinkedIn). The speaker is followed and the captions, hook, logo and CTA are placed for that canvas. GET /v1/shorts/caption-styles lists them with their pixel size.
9:16, 4:5, 1:1, 16:9 Public HTTPS URL to POST job.completed or job.failed to when this job finishes (same envelope, signature and retries as registered webhooks). It is signed with this job's own webhook_secret, returned once in the 202.
2048"https://example.com/hooks/smartlyq"

