Edit

Full edit in one render

Everything in one call and one render: trim / keep spans → cut retakes, false starts and stutters (remove_retakes: the best take of each stays, nothing said only once is cut) → remove silences and filler words → speed → reframe (9:16, 1:1…) → colour grade → zoom / punch-in → inserts (other clips placed into the video from their own in-point, with their sound: a cut-away that replaces the picture — and with audio: "keep" the sound —, a full-frame overlay or a picture-in-picture box; at a time or on words) → B-roll overlays (full, pip or split screen) → logo → captions and hook → voice-over, sound effects and music with ducking → loudness → encode. Every block is optional. Captions never leave the frame: a line too wide for the video is set smaller automatically. Unknown fields are rejected, so nothing you ask for is silently skipped.

Billing: Per second of output (≤720p / 1080p tiers; audio and images cheaper) + transcription seconds when captions or silence removal transcribe automatically + the voice clean-up per second of output when asked for (audio.denoise / enhance, off by default) and only when it found noise to reduce or enhanced the voice (auto on a clean recording is free) + effect seconds for a heavy engine effect in effects (its seconds on screen × its measured weight — GET /v1/effects). Failed renders are not charged. · Rate limit: 30/min · Asynchronous

post/v1/studio/edit

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/studio/edit
  • 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=…

x-wait-msinteger

Wait for the job inside this call (ms)

Request body

speednumber
brand_idstring

A brand of yours (GET /v1/brands): its logo (at its corner), colours, fonts and caption style fill what this request leaves out — anything you set here wins. default = your default brand

hold_endnumber

Freeze the last frame this many seconds (an end card over a still)

keytermsstring[]

Names and terms to recognise correctly (brands, people)

video_urlstring uri required

Public URL of the source video (mp4, mov, webm, mkv…) — or the url of a previous render

language_codestring

Spoken language for automatic transcription, e.g. he, en. Omit to detect

speech_modelsstring[]
transcript_idstring

Reuse a transcript from /v1/speech/transcripts (no transcription charge). Omit to transcribe automatically

words_offset_msnumber

Added to every word time before anything else, ms (a transcript on the audio stream's clock vs the container's; default 0)

Response

Completed (or 202 while processing)

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.