Kling 비디오-오디오 생성
CometAPI의 Video to Audio 엔드포인트를 통해 Kling 비디오를 고품질 오디오로 변환하며, 출력 형식, 길이, 프롬프트를 제어할 수 있습니다.
curl https://api.cometapi.com/kling/v1/audio/video-to-audio \
-H "Authorization: Bearer $COMETAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://xxxxx.mp4"
}'import os
import requests
response = requests.post(
"https://api.cometapi.com/kling/v1/audio/video-to-audio",
headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
json={
"video_url": "https://xxxxx.mp4"
},
)
result = response.json()
print(result["code"], result.get("data", {}).get("task_id")) # code 0 means submitted; poll the matching query endpoint until task_status is succeed
const response = await fetch("https://api.cometapi.com/kling/v1/audio/video-to-audio", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"video_url": "https://xxxxx.mp4"
}),
});
const result = await response.json();
console.log(result.code, result.data?.task_id); // code 0 means submitted; poll the matching query endpoint until task_status is succeed
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cometapi.com/kling/v1/audio/video-to-audio",
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_url' => 'https://xxxxx.mp4'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.cometapi.com/kling/v1/audio/video-to-audio"
payload := strings.NewReader("{\n \"video_url\": \"https://xxxxx.mp4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.cometapi.com/kling/v1/audio/video-to-audio")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"video_url\": \"https://xxxxx.mp4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cometapi.com/kling/v1/audio/video-to-audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"video_url\": \"https://xxxxx.mp4\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"message": "<string>",
"data": {
"task_id": "<string>",
"task_status": "<string>",
"created_at": 123,
"updated_at": 123
}
}호출하기 전에
video_id또는video_url중 하나만 전송하고, 둘 다 전송하지는 마세요- 소스 클립이 원래 Kling에서 생성된 것이 아닌 경우
video_url을 사용하세요 - 통합에 필요한 경우가 아니라면
callback_url과external_task_id는 선택 사항으로 유지하세요
작업 흐름
소스 비디오 제출
video_id 또는 접근 가능한 video_url 중 하나를 전송한 다음, 반환된 task id를 저장하세요.작업 폴링
출력 저장
인증
Bearer token authentication. Use your CometAPI key.
본문
- Option 1
- Option 2
ID of a Kling-generated video. Only videos created within the last 30 days with a duration of 3–20 seconds are supported. Mutually exclusive with video_url — exactly one must be provided.
Optional user-defined task ID for your own tracking. Does not replace the system-generated task ID. Must be unique per account.
Webhook URL for task status notifications. The server sends a callback when the task status changes.
Accessible URL of the source video. Accepted formats: MP4, MOV. Max 100 MB, 720p or 1080p resolution, duration 3–20 seconds. Mutually exclusive with video_id — exactly one must be provided.
curl https://api.cometapi.com/kling/v1/audio/video-to-audio \
-H "Authorization: Bearer $COMETAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://xxxxx.mp4"
}'import os
import requests
response = requests.post(
"https://api.cometapi.com/kling/v1/audio/video-to-audio",
headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
json={
"video_url": "https://xxxxx.mp4"
},
)
result = response.json()
print(result["code"], result.get("data", {}).get("task_id")) # code 0 means submitted; poll the matching query endpoint until task_status is succeed
const response = await fetch("https://api.cometapi.com/kling/v1/audio/video-to-audio", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"video_url": "https://xxxxx.mp4"
}),
});
const result = await response.json();
console.log(result.code, result.data?.task_id); // code 0 means submitted; poll the matching query endpoint until task_status is succeed
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cometapi.com/kling/v1/audio/video-to-audio",
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_url' => 'https://xxxxx.mp4'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.cometapi.com/kling/v1/audio/video-to-audio"
payload := strings.NewReader("{\n \"video_url\": \"https://xxxxx.mp4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.cometapi.com/kling/v1/audio/video-to-audio")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"video_url\": \"https://xxxxx.mp4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cometapi.com/kling/v1/audio/video-to-audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"video_url\": \"https://xxxxx.mp4\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"message": "<string>",
"data": {
"task_id": "<string>",
"task_status": "<string>",
"created_at": 123,
"updated_at": 123
}
}