Download OpenAPI specification:
This API provides powerful video and audio processing capabilities including:
All API requests require authentication using an API key. Include your API key in the request header:
x-api-key: your-api-key-here
To obtain an API key:
Most operations consume credits from your account. Each endpoint's credit cost is documented in its description. Monitor your credit balance in your user account on https://video-api.io
Many operations are asynchronous and return a Job ID. Poll the Job endpoint to check status and retrieve results when processing is complete.
Transcode the video to a different format
| videoFileId required | string <uuid> |
| outputFormat required | string Enum: "H265_LOSSLESS" "H265" |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "outputFormat": "H265_LOSSLESS"
}Scales the video to the given size
| videoFileId required | string <uuid> |
| outputWidth required | integer <int32> <= 3840 width of the output video file, set to -1 to set it based on the aspect ratio |
| outputHeight required | integer <int32> <= 2160 height of the output video file, set to -1 to set it based on the aspect ratio |
| outputFormat required | string Enum: "H265_LOSSLESS" "H265" |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "outputWidth": 1920,
- "outputHeight": 1080,
- "outputFormat": "H265_LOSSLESS"
}Replaces the audio of the given video with the given audio
| videoFileId required | string <uuid> video file to replace the audio of |
| audioFileId required | string <uuid> audio to use as replacement |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29"
}Overlays two or more videos/images over a background/base video
| backgroundVideoFileId required | string <uuid> video id of the background/base video |
required | Array of objects (OverlayDefinition) list of overlays to put on top of the background |
| outputFormat required | string Enum: "H265_LOSSLESS" "H265" format of the resulting video |
{- "backgroundVideoFileId": "d933e89d-c6e8-4807-8de7-1f05bcaecd27",
- "overlays": [
- {
- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "start": 0.1,
- "stop": 0.1,
- "offset": {
- "x": 0,
- "y": 0
}
}
], - "outputFormat": "H265_LOSSLESS"
}Mixes the audio into the given video file
| videoFileId required | string <uuid> |
| audioFileId required | string <uuid> |
| audioVolume required | integer <int32> [ 0 .. 100 ] the volume of the audio from the audio file (between 0 and 100) |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29",
- "audioVolume": 100
}Generates a preview image from the given video file
| videoFileId required | string <uuid> video file to create previews of |
| offset required | number <double> >= 0 offset (in seconds) to start taking previews from |
| offsetBetweenImages required | number <double> [ 0.1 .. 9999 ] offset (in seconds) between two preview images |
| targetWidth required | integer <int32> [ 1 .. 3840 ] width of the resulting preview images (height is calculated automatically to keep the original's video aspect ratio) |
| maxAmount required | integer <int32> [ 1 .. 9999 ] max amount of preview images to take |
| outputType required | string Enum: "STITCHED_JPG" "ZIP" result type, either a stitched JPG consisting of all the preview images, or a zip file containing all the preview images |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "offset": 0.1,
- "offsetBetweenImages": 0.1,
- "targetWidth": 1,
- "maxAmount": 1,
- "outputType": "STITCHED_JPG"
}Extracts the audio from the given video file.
| videoFileId required | string <uuid> |
| audioFormat required | string Enum: "FLAC" "AAC_HQ" "AAC" "MP3" |
{- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "audioFormat": "FLAC"
}Generates a new video by cutting and merging the video parts as requested
required | object (VideoSize) dimensions of the resulting video |
| outputFps required | integer <int32> >= 1 frames per second (fps) of the resulting video |
| outputFormat required | string Enum: "H265_LOSSLESS" "H265" output format for audio and video of the resulting video |
required | Array of objects (VideoSequence) sequences of videos to cut into the final video |
{- "outputSize": {
- "width": 128,
- "height": 128
}, - "outputFps": 1,
- "outputFormat": "H265_LOSSLESS",
- "sequences": [
- {
- "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
- "start": 0.1,
- "end": 0.1
}
]
}Renders subtitles for a given video file. Note that this is optimized currently for rendering of subtitles for portrait mode videos only!
required | object (RenderSubtitleTarget) |
required | object (FontSetting) |
required | Array of objects (SubtitleLineDto) |
| type required | string Enum: "SIMPLE" "SIMPLE_SINE" |
| highlightColor required | string |
| outputType required | string Enum: "WEB_M" "ZIP" |
{- "renderTarget": {
- "width": 128,
- "fps": 0.1
}, - "font": {
- "name": "MONTSERRAT_SEMIBOLD",
- "size": 0.1,
- "color": "string",
- "outlineColor": "string"
}, - "lines": [
- {
- "line": "string",
- "words": [
- {
- "word": "string",
- "start": 0.1,
- "end": 0.1
}
], - "start": 0.1,
- "end": 0.1
}
], - "type": "SIMPLE",
- "highlightColor": "string",
- "outputType": "WEB_M"
}Renders an overlay of one or multiple png layers that are animated based on the specified list of actions
required | object (RenderVideoTarget) |
| outputType required | string Enum: "WEB_M" "ZIP" |
required | Array of AssetNode (object) or GroupNode (object) or TextNode (object) |
required | Array of AlphaAction (object) or GroupAction (object) or LoopAction (object) or MoveAction (object) or RotateAction (object) or ScaleAction (object) or WaitAction (object) |
{- "videoTarget": {
- "width": 0,
- "height": 0,
- "duration": 0.1,
- "fps": 0.1
}, - "outputType": "WEB_M",
- "nodes": [
- {
- "name": "string",
- "position": {
- "x": 0.1,
- "y": 0.1
}, - "rotation": 0.1,
- "center": {
- "x": 0.1,
- "y": 0.1
}, - "scale": 0.1,
- "alpha": 0.1,
- "zIndex": 0,
- "size": {
- "x": 0,
- "y": 0
}, - "zindex": 0,
- "type": "string",
- "fileId": "a1c6a2ab-4b01-4253-b4c9-70e04b3b48fc",
- "spriteSheet": {
- "x": 0,
- "y": 0
}, - "animationFps": 0
}
], - "actions": [
- {
- "time": 0.1,
- "interpolation": "LINEAR",
- "done": true,
- "type": "string",
- "node": "string",
- "alpha": 0.1
}
]
}Uploads and temporarily stores a file for processing. Files are automatically deleted after a certain period of inactivity.
| file required | string <binary> |
{- "file": "string"
}Converts audio data to a standard audio format (FLAC, AAC, AAC HQ or MP3)
| audioFileId required | string <uuid> |
| outputFormat required | string Enum: "FLAC" "AAC_HQ" "AAC" "MP3" |
{- "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29",
- "outputFormat": "FLAC"
}Generates an audio clip of an AI voice reading your script (text-to-speech). You can also give instructions like 'read this slowly: ...', etc.
💰 Cost: 10 credits
| script required | string non-empty |
| voice required | string Enum: "JILLIAN" "ANDREA" |
| outputFormat required | string Enum: "FLAC" "AAC_HQ" "AAC" "MP3" |
{- "script": "string",
- "voice": "JILLIAN",
- "outputFormat": "FLAC"
}