curl --request POST \
--url https://api.vozo.ai/v1/media/frame_translate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"video_url": "<string>",
"source_language": "<string>",
"target_language": "<string>",
"glossary_ids": [
"<string>"
],
"user_prompt": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/media/frame_translate"
payload = {
"video_url": "<string>",
"source_language": "<string>",
"target_language": "<string>",
"glossary_ids": ["<string>"],
"user_prompt": "<string>",
"callback_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
video_url: '<string>',
source_language: '<string>',
target_language: '<string>',
glossary_ids: ['<string>'],
user_prompt: '<string>',
callback_url: '<string>'
})
};
fetch('https://api.vozo.ai/v1/media/frame_translate', 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.vozo.ai/v1/media/frame_translate",
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' => '<string>',
'source_language' => '<string>',
'target_language' => '<string>',
'glossary_ids' => [
'<string>'
],
'user_prompt' => '<string>',
'callback_url' => '<string>'
]),
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.vozo.ai/v1/media/frame_translate"
payload := strings.NewReader("{\n \"video_url\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\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.vozo.ai/v1/media/frame_translate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"video_url\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/media/frame_translate")
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\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}创建画面翻译任务
Create a visual translation job for video on-screen text
curl --request POST \
--url https://api.vozo.ai/v1/media/frame_translate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"video_url": "<string>",
"source_language": "<string>",
"target_language": "<string>",
"glossary_ids": [
"<string>"
],
"user_prompt": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/media/frame_translate"
payload = {
"video_url": "<string>",
"source_language": "<string>",
"target_language": "<string>",
"glossary_ids": ["<string>"],
"user_prompt": "<string>",
"callback_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
video_url: '<string>',
source_language: '<string>',
target_language: '<string>',
glossary_ids: ['<string>'],
user_prompt: '<string>',
callback_url: '<string>'
})
};
fetch('https://api.vozo.ai/v1/media/frame_translate', 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.vozo.ai/v1/media/frame_translate",
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' => '<string>',
'source_language' => '<string>',
'target_language' => '<string>',
'glossary_ids' => [
'<string>'
],
'user_prompt' => '<string>',
'callback_url' => '<string>'
]),
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.vozo.ai/v1/media/frame_translate"
payload := strings.NewReader("{\n \"video_url\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\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.vozo.ai/v1/media/frame_translate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"video_url\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/media/frame_translate")
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\": \"<string>\",\n \"source_language\": \"<string>\",\n \"target_language\": \"<string>\",\n \"glossary_ids\": [\n \"<string>\"\n ],\n \"user_prompt\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}授权
Bearer authentication header of the form Bearer <api_key>, where <api_key> is your API Key. The token in the sample code is referring to this api_key as well.
请求体
Publicly accessible URL of the input video for the server to download. Maximum supported input duration is 20 minutes.
Source language code. Auto detection is not supported; pass a supported language code such as en-US or zh-CN.
^[a-z]{2,3}(-[A-Za-z0-9]+)*$Target language code. Locale is optional and may include regional variants, e.g. en, en-US, zh, zh-CN, zh-CN-GUANGXI. Only the language part is validated against the supported list.
^[a-z]{2,3}(-[A-Za-z0-9]+)*$List of glossary IDs from the product. Up to 3 glossaries can be applied during translation for consistent terminology.
3Optional prompt to guide visual text translation style.
Controls project creation behavior in the web dashboard. editable creates an editable visual translation project; none disables project creation.
none, editable Webhook callback URL for status changes.
响应
Job queued
ID of the visual translation task.
此页面对您有帮助吗?