POST
/
api
/
v1
/
automation
/
create-reframe
Create Reframe
curl --request POST \
  --url https://public.reap.video/api/v1/automation/create-reframe \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "uploadId": "<string>",
  "genre": "<string>",
  "orientation": "<string>",
  "disableAutoSplit": true
}'
{
  "id": "<string>",
  "title": "<string>",
  "thumbnail": "<string>",
  "billedDuration": 123,
  "status": "<string>",
  "projectType": "<string>",
  "source": "<string>",
  "genre": "<string>",
  "topics": [
    {}
  ],
  "clipDurations": [
    {}
  ],
  "selectedStart": 123,
  "selectedEnd": 123,
  "reframeClips": true,
  "exportResolution": 123,
  "exportOrientation": "<string>",
  "captionsPreset": "<string>",
  "enableCaptions": true,
  "enableEmojies": true,
  "enableHighlights": true,
  "language": "<string>",
  "dubbingLanguage": "<string>",
  "translateTranscription": true,
  "translationLanguages": [
    {}
  ],
  "metadata": {},
  "urls": {},
  "createdAt": 123,
  "updatedAt": 123
}

Overview

Automatically reframe videos from landscape to portrait or square formats using AI. Perfect for adapting content for TikTok, Instagram Stories, and other vertical video platforms.

Rate Limiting

This endpoint is rate limited to 10 requests per minute per API key.

Request Body

uploadId
string
required

Upload ID from a previously uploaded file

genre
string
default:"talking"

Video genre for better AI analysis

orientation
string
default:"portrait"

Target orientation

disableAutoSplit
boolean
default:"false"

Whether to disable automatic splitting into segments

Video Requirements

Duration

Minimum: 3 seconds
Maximum: 15 minutes

File Size

Maximum: 5 GB

Format

MP4 or MOV with valid video streams

Source Format

Works best with landscape (16:9) source videos

Response

id
string

Unique project identifier

title
string

Project title (usually the filename)

thumbnail
string

Thumbnail URL for the project

billedDuration
number

Duration in seconds that will be billed to your account

status
string

Current processing status

  • processing - Video is being analyzed and reframed
  • completed - Reframing completed successfully
  • failed - Processing failed due to an error
projectType
string

Type of project (always “reframe” for this endpoint)

source
string

Source of the video content (always “user_upload” for this endpoint)

genre
string

Video genre used for AI analysis

topics
array

Array of identified topics in the video

clipDurations
array

Array of clip duration preferences

selectedStart
number

Start time in seconds for processing (null if entire video)

selectedEnd
number

End time in seconds for processing (null if entire video)

reframeClips
boolean

Whether clips are automatically reframed (always true for reframe projects)

exportResolution
integer

Output resolution for the reframed video

exportOrientation
string

Output orientation for the reframed video

captionsPreset
string

Caption style preset ID (null if captions disabled)

enableCaptions
boolean

Whether captions are enabled

enableEmojies
boolean

Whether emojis are added to captions

enableHighlights
boolean

Whether keyword highlighting is enabled

language
string

Primary language of the video content

dubbingLanguage
string

Target dubbing language (null if not applicable)

translateTranscription
boolean

Whether transcription will be translated

translationLanguages
array

Array of languages for translation

metadata
object

Video file metadata including duration, resolution, format, etc.

urls
object

Project URLs and assets (populated when processing completes)

createdAt
integer

Unix timestamp when the project was created

updatedAt
integer

Unix timestamp when the project was last updated

Example Request

curl -X POST "https://public.reap.video/api/v1/automation/create-reframe" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "uploadId": "65f1a2b3c4d5e6f7a8b9c0d1",
    "genre": "educational",
    "orientation": "portrait",
    "disableAutoSplit": false
  }'

Example Response

Processing Workflow

  1. Upload Analysis - Video is analyzed for speakers, objects, and key visual elements
  2. Smart Cropping - AI automatically crops and reframes to keep important content in view
  3. Motion Tracking - Follows speakers and maintains optimal framing throughout the video
  4. Segmentation - Optionally splits longer videos into optimal segments (unless disabled)
  5. Output Generation - Creates reframed video in the target aspect ratio

Reframing Features

  • Speaker Tracking: Automatically follows speakers and keeps them centered
  • Object Recognition: Identifies and tracks important visual elements
  • Smart Cropping: Maintains optimal composition throughout the video
  • Smooth Transitions: Ensures natural camera movements between focus points
  • Auto-Segmentation: Intelligently splits content into engaging segments

Use Cases

Social Media Adaptation

Convert landscape videos for TikTok, Instagram Stories

Content Repurposing

Adapt existing content for vertical platforms

Multi-Platform Publishing

Create versions optimized for different aspect ratios

Mobile Optimization

Ensure content looks great on mobile devices

Best Practices

  • Source Quality: Use high-resolution landscape videos for best results
  • Speaker Positioning: Videos with centered speakers reframe more effectively
  • Content Type: Works best with talking head videos and presentations
  • Duration: Shorter videos (under 5 minutes) process faster and more accurately