curl --request POST \
--url https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe \
--header 'AccessKey: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"targetLanguages": [
"<string>"
],
"generateTitle": true,
"generateDescription": true,
"generateChapters": true,
"generateMoments": true,
"sourceLanguage": "<string>"
}
'import requests
url = "https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe"
payload = {
"targetLanguages": ["<string>"],
"generateTitle": True,
"generateDescription": True,
"generateChapters": True,
"generateMoments": True,
"sourceLanguage": "<string>"
}
headers = {
"AccessKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {AccessKey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetLanguages: ['<string>'],
generateTitle: true,
generateDescription: true,
generateChapters: true,
generateMoments: true,
sourceLanguage: '<string>'
})
};
fetch('https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe', 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://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe",
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([
'targetLanguages' => [
'<string>'
],
'generateTitle' => true,
'generateDescription' => true,
'generateChapters' => true,
'generateMoments' => true,
'sourceLanguage' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"AccessKey: <api-key>",
"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://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe"
payload := strings.NewReader("{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("AccessKey", "<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.post("https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe")
.header("AccessKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["AccessKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}Transcribe video
Queues transcription for the video, generating captions. By default this is blocked if the video was already auto-transcribed; set force to true to re-queue (and re-bill) transcription anyway.
curl --request POST \
--url https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe \
--header 'AccessKey: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"targetLanguages": [
"<string>"
],
"generateTitle": true,
"generateDescription": true,
"generateChapters": true,
"generateMoments": true,
"sourceLanguage": "<string>"
}
'import requests
url = "https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe"
payload = {
"targetLanguages": ["<string>"],
"generateTitle": True,
"generateDescription": True,
"generateChapters": True,
"generateMoments": True,
"sourceLanguage": "<string>"
}
headers = {
"AccessKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {AccessKey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetLanguages: ['<string>'],
generateTitle: true,
generateDescription: true,
generateChapters: true,
generateMoments: true,
sourceLanguage: '<string>'
})
};
fetch('https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe', 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://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe",
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([
'targetLanguages' => [
'<string>'
],
'generateTitle' => true,
'generateDescription' => true,
'generateChapters' => true,
'generateMoments' => true,
'sourceLanguage' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"AccessKey: <api-key>",
"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://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe"
payload := strings.NewReader("{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("AccessKey", "<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.post("https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe")
.header("AccessKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://video.bunnycdn.com/library/{libraryId}/videos/{videoId}/transcribe")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["AccessKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetLanguages\": [\n \"<string>\"\n ],\n \"generateTitle\": true,\n \"generateDescription\": true,\n \"generateChapters\": true,\n \"generateMoments\": true,\n \"sourceLanguage\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}{
"success": true,
"message": "<string>",
"statusCode": 123
}Authorizations
AccessKey based authentication
Path Parameters
The ID of the video library.
The GUID of the video.
Query Parameters
If set to true, re-queues transcription even if the video was already auto-transcribed. This re-bills transcription usage.
Body
Used to override video library transcription settings, null by default
List of languages that will be used as target languages, use ISO 639-1 language codes.
Whether video title should be automatically generated.
Whether video description should be automatically generated.
Whether video chapters should be automatically generated.
Whether video moments should be automatically generated.
Video source language, use ISO 639-1 language code.
Response
The transcription was queued
Was this page helpful?