Kling-o1 Video Edit
curl --request POST \
--url https://api.myrouter.ai/v3/async/kling-o1-video-edit \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"video": "<string>",
"images": [
{}
],
"prompt": "<string>",
"fast_mode": true,
"aspect_ratio": "<string>",
"keep_original_sound": true
}
'import requests
url = "https://api.myrouter.ai/v3/async/kling-o1-video-edit"
payload = {
"video": "<string>",
"images": [{}],
"prompt": "<string>",
"fast_mode": True,
"aspect_ratio": "<string>",
"keep_original_sound": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
video: '<string>',
images: [{}],
prompt: '<string>',
fast_mode: true,
aspect_ratio: '<string>',
keep_original_sound: true
})
};
fetch('https://api.myrouter.ai/v3/async/kling-o1-video-edit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.myrouter.ai/v3/async/kling-o1-video-edit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'video' => '<string>',
'images' => [
[
]
],
'prompt' => '<string>',
'fast_mode' => true,
'aspect_ratio' => '<string>',
'keep_original_sound' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.myrouter.ai/v3/async/kling-o1-video-edit"
payload := strings.NewReader("{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.myrouter.ai/v3/async/kling-o1-video-edit")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/async/kling-o1-video-edit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Video
Kling-o1 Video Edit
POST
/
v3
/
async
/
kling-o1-video-edit
Kling-o1 Video Edit
curl --request POST \
--url https://api.myrouter.ai/v3/async/kling-o1-video-edit \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"video": "<string>",
"images": [
{}
],
"prompt": "<string>",
"fast_mode": true,
"aspect_ratio": "<string>",
"keep_original_sound": true
}
'import requests
url = "https://api.myrouter.ai/v3/async/kling-o1-video-edit"
payload = {
"video": "<string>",
"images": [{}],
"prompt": "<string>",
"fast_mode": True,
"aspect_ratio": "<string>",
"keep_original_sound": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
video: '<string>',
images: [{}],
prompt: '<string>',
fast_mode: true,
aspect_ratio: '<string>',
keep_original_sound: true
})
};
fetch('https://api.myrouter.ai/v3/async/kling-o1-video-edit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.myrouter.ai/v3/async/kling-o1-video-edit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'video' => '<string>',
'images' => [
[
]
],
'prompt' => '<string>',
'fast_mode' => true,
'aspect_ratio' => '<string>',
'keep_original_sound' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.myrouter.ai/v3/async/kling-o1-video-edit"
payload := strings.NewReader("{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.myrouter.ai/v3/async/kling-o1-video-edit")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/async/kling-o1-video-edit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"video\": \"<string>\",\n \"images\": [\n {}\n ],\n \"prompt\": \"<string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"<string>\",\n \"keep_original_sound\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Kling Omni Video O1 video editor supports conversational video editing through natural language commands. With simple text instructions such as “remove pedestrians” or “change daytime to dusk”, you can remove objects, replace backgrounds, modify styles, adjust weather/lighting, and transform scenes.
This is an async API that only returns the task_id of the async task. Use the task_id to call the Get Async Task Result API to retrieve the generated result.
Request Headers
string
required
Enum:
application/jsonstring
required
Bearer authentication format: Bearer {{API Key}}.
Request Body
string
required
Video URL.
array
default:"[]"
Reference images containing elements, scenes, styles, etc. Up to 4 images.Array length: 0 - 4
string
required
Positive prompt for generation.
boolean
default:false
Whether to use fast mode.
string
Aspect ratio of the generated video.Possible values:
16:9, 9:16, 1:1boolean
default:true
Whether to keep the original audio from the video.
Response
string
required
Use the task_id to call the Get Async Task Result API to retrieve the generated output.
⌘I