Create AI-powered short clips from long-form videos

post/automation/create-clips

Request

  • Base URL
    https://public.reap.video/api/v1
  • URL
    https://public.reap.video/api/v1/automation/create-clips
  • Auth
    HTTP bearer

Request body

sourceUrlstring

YouTube URL to process (alternative to uploadId)

uploadIdstring

Upload ID from a previously uploaded file (alternative to sourceUrl)

exportOrientation'landscape' | 'portrait' | 'square'

Output orientation for the clips — the single knob for cropping. 'portrait' (9:16) and 'square' (1:1) auto-crop the source; 'landscape' (16:9) keeps the original framing with no crop. The legacy reframeClips field is ignored if sent.

exportResolution720 | 1080 | 1440 | 2160

Output resolution for the clips

captionsPresetstring nullable

Caption style preset ID (null to disable captions)

enableEmojisboolean

Whether to add emojis to captions

enableHighlightsboolean

Whether to highlight keywords in captions

languagestring nullable

Primary language of the video content (auto-detected if not provided)

translationLanguagestring nullable

Language to translate captions to

transcriptionScript'native' | 'roman'

Script format for transcription output

genre'talking' | 'screenshare' | 'gaming'

Video genre for better AI analysis

selectedStartnumber nullable

Start time in seconds for processing

selectedEndnumber nullable

End time in seconds for processing

topicsstring[]

Topic preferences to guide the AI when selecting clip segments. For example: ["product launch", "customer testimonials"]. When omitted, the AI selects the most engaging topics automatically.

promptstring

Preview feature — schema is stable, AI interpretation may evolve. Free-form natural-language instruction (max 1000 chars) that guides what kinds of clips the AI selects — for example 'highlight reel of the funniest moments' or 'only product-demo segments under 30 seconds'. Can control clip count, duration, content scope, exclusions, editorial mode, and tone. Overrides generic virality scoring when the prompt and a candidate moment conflict. When omitted, the AI uses standard virality-driven selection.

Response

Successful response

idstring
titlestring
thumbnailstring
billedDurationnumber
status'queued' | 'prepped' | 'draft' | 'processing' | 'finalizing' | 'completed' | 'invalid' | 'expired' | 'failed' | 'error'
projectType'clipping' | 'captions' | 'reframe' | 'dubbing' | 'transcription'
source'Upload' | 'Youtube' | 'Vimeo' | 'TwitchVod' | 'Twitter' | 'RumbleEmbed' | 'Generic'
genre'talking' | 'screenshare' | 'gaming'
topicsstring[]
selectedStartnumber nullable
selectedEndnumber nullable
exportResolutioninteger
exportOrientation'landscape' | 'portrait' | 'square'
captionsPresetstring nullable
enableCaptionsboolean
enableEmojisboolean
enableHighlightsboolean
languagestring nullable
dubbingLanguagestring nullable
translateTranscriptionboolean
translationLanguagesstring[]
transcriptionScript'native' | 'roman'
createdAtinteger
updatedAtinteger

Changes

    • warning

      removed the request property

    • warning

      removed the optional property from the response with the status

    • info

      the request property default value changed from 720 to 1080

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status