Video Translate
Upload Proofread SRT
Replaces the proofread subtitles with an edited SRT file.
PUT
/
v3
/
video-translations
/
proofreads
/
{proofread_id}
/
srt
Upload Proofread SRT
curl --request PUT \
--url https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"srt": {
"type": "<string>",
"url": "<string>"
}
}
'import requests
url = "https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt"
payload = { "srt": {
"type": "<string>",
"url": "<string>"
} }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({srt: {type: '<string>', url: '<string>'}})
};
fetch('https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt', 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.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'srt' => [
'type' => '<string>',
'url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt"
payload := strings.NewReader("{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.put("https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"title": "<string>",
"output_language": "<string>",
"input_language": "<string>",
"submitted_for_review": true,
"created_at": 123,
"failure_message": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "'srt_content' is required.",
"param": "srt_content",
"doc_url": null
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "not_found",
"message": "Proofread not found.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}Authorizations
ApiKeyAuthBearerAuth
HeyGen API key. Obtain from your HeyGen dashboard.
Path Parameters
Unique proofread identifier
Body
application/json
Request body for PUT /v3/video-translations/proofreads/{id}/srt.
Asset input via publicly accessible HTTPS URL.
- AssetUrl
- AssetId
Show child attributes
Show child attributes
Response
Successful response
Detailed proofread resource.
Show child attributes
Show child attributes
Previous
Generate video from proofreadStarts final video generation using the approved subtitles from a proofread session.
Next
⌘I
Upload Proofread SRT
curl --request PUT \
--url https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"srt": {
"type": "<string>",
"url": "<string>"
}
}
'import requests
url = "https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt"
payload = { "srt": {
"type": "<string>",
"url": "<string>"
} }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({srt: {type: '<string>', url: '<string>'}})
};
fetch('https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt', 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.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'srt' => [
'type' => '<string>',
'url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt"
payload := strings.NewReader("{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.put("https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/video-translations/proofreads/{proofread_id}/srt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"srt\": {\n \"type\": \"<string>\",\n \"url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"title": "<string>",
"output_language": "<string>",
"input_language": "<string>",
"submitted_for_review": true,
"created_at": 123,
"failure_message": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "'srt_content' is required.",
"param": "srt_content",
"doc_url": null
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "not_found",
"message": "Proofread not found.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}
