Edit

Plan a kinetic-typography edit (CapCut style)

Turns the word timings of a talking-head video into ONE ready body for POST /v1/studio/edit in the CapCut short-form look: no subtitle line — every spoken word lands on the frame it is said, in small cards of 1–3 words (small connector words, one big key word in a rotating display font, acid lime on every other card), a big hook, a punch-zoom rhythm, black title cards with a white flash, emoji stickers, a reused sound kit and a music bed, 9:16 720p. Every element is anchored to a word of the video's transcript (at / during on the words' ids): the render cuts the pauses from the sound and lands each element on its word's exact frame. Nothing is rendered or generated here — it answers at once, with the numbered words (with ids), the plan's timeline and warnings. Recipe: /skills/full-kinetic.md

Billing: Read request — the plan is free; the render is POST /v1/studio/edit · Rate limit: 60/min

post/v1/studio/kinetic

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/studio/kinetic
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Replay-safe: the same execution is returned instead of charging twice

X-Tagstring

Group calls into one job (e.g. one video) — see GET /v1/usage?tag=…

Request body

hookboolean

The first phrase as a big title in the top band

seedinteger

Another seed = another rotation of fonts, positions and effects

speednumber

Play faster (1.1 = +10 %). The references talk ≈ 3.5–4.5 words/s; a slower speaker (< 2.8) reads tighter at 1.1

accentstring
emphasisinteger[]

Indices of the key words (one per phrase gets the big display type). Omit to pick the longest word of each phrase

video_urlstring uri required

The source video (a public link or an upload's url)

resolution'720' | '1080'

720 = the references' 720×1280 and 25 % cheaper

voice_lufsnumber

The voice's integrated loudness, if you know it (the endpoint measures cut_audio_url)

cut_audio_urlstring uri

A WAV of the voice, to set the music level by (POST /v1/studio/convert with output.format: "wav", or the sound-only pass of POST /v1/studio/remove-silence): the voice's loudness is measured there so the music sits ≈ 10 dB under it. Omit: 0.3

transcript_idstring

The transcript of the video itself (POST /v1/speech/transcripts on its url): every element of the plan is anchored to its words, and the render cuts the pauses around them

Response

Completed

idstring

Execution id — stable across internal retries; use it with GET /v1/executions/{id}

status'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
operationstring
tagstring nullable

Your X-Tag, if sent

created_atstring date-time
completed_atstring date-time nullable
outputobject

Operation result (see each operation). While a Studio render is processing: stage (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), phase (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), progress (a percent, 0–100) and progress_fraction (0–1), eta_seconds (seconds left, never below 0) and estimate_seconds

errorstring nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.