Generate audio using AI
curl --request POST \
--url https://api.videodb.io/collection/{collection_id}/generate/audio/ \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
}
'const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Generate upbeat background music',
audio_type: 'music',
callback_url: 'https://webhook.example.com/callback'
})
};
fetch('https://api.videodb.io/collection/{collection_id}/generate/audio/', 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.videodb.io/collection/{collection_id}/generate/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([
'prompt' => 'Generate upbeat background music',
'audio_type' => 'music',
'callback_url' => 'https://webhook.example.com/callback'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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.videodb.io/collection/{collection_id}/generate/audio/"
payload := strings.NewReader("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<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://api.videodb.io/collection/{collection_id}/generate/audio/")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.videodb.io/collection/{collection_id}/generate/audio/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}"
response = http.request(request)
puts response.read_body$headers=@{}
$headers.Add("x-access-token", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.videodb.io/collection/{collection_id}/generate/audio/' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
}'import Foundation
let parameters = [
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.videodb.io/collection/{collection_id}/generate/audio/")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"x-access-token": "<api-key>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.videodb.io/collection/{collection_id}/generate/audio/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-access-token", "<api-key>");
request.AddJsonBody("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://api.videodb.io/collection/{collection_id}/generate/audio/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-access-token", "<api-key>");
request.AddJsonBody("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Generate upbeat background music',
audio_type: 'music',
callback_url: 'https://webhook.example.com/callback'
})
};
fetch('https://api.videodb.io/collection/{collection_id}/generate/audio/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.videodb.io/collection/{collection_id}/generate/audio/");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-access-token: <api-key>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.videodb.io/collection/{collection_id}/generate/audio/");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-access-token: <api-key>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}");
CURLcode ret = curl_easy_perform(hnd);val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
val request = Request.Builder()
.url("https://api.videodb.io/collection/{collection_id}/generate/audio/")
.post(body)
.addHeader("x-access-token", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute(){
"success": true,
"status": "processing",
"data": {
"id": "job-123",
"output_url": "https://api.videodb.io/async-response/job-123"
}
}Generate Audio with AI
Generate audio, music, and voice content using AI models
POST
/
collection
/
{collection_id}
/
generate
/
audio
/
Generate audio using AI
curl --request POST \
--url https://api.videodb.io/collection/{collection_id}/generate/audio/ \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
}
'const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Generate upbeat background music',
audio_type: 'music',
callback_url: 'https://webhook.example.com/callback'
})
};
fetch('https://api.videodb.io/collection/{collection_id}/generate/audio/', 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.videodb.io/collection/{collection_id}/generate/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([
'prompt' => 'Generate upbeat background music',
'audio_type' => 'music',
'callback_url' => 'https://webhook.example.com/callback'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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.videodb.io/collection/{collection_id}/generate/audio/"
payload := strings.NewReader("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<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://api.videodb.io/collection/{collection_id}/generate/audio/")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.videodb.io/collection/{collection_id}/generate/audio/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}"
response = http.request(request)
puts response.read_body$headers=@{}
$headers.Add("x-access-token", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.videodb.io/collection/{collection_id}/generate/audio/' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
}'import Foundation
let parameters = [
"prompt": "Generate upbeat background music",
"audio_type": "music",
"callback_url": "https://webhook.example.com/callback"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.videodb.io/collection/{collection_id}/generate/audio/")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"x-access-token": "<api-key>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.videodb.io/collection/{collection_id}/generate/audio/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-access-token", "<api-key>");
request.AddJsonBody("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://api.videodb.io/collection/{collection_id}/generate/audio/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-access-token", "<api-key>");
request.AddJsonBody("{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Generate upbeat background music',
audio_type: 'music',
callback_url: 'https://webhook.example.com/callback'
})
};
fetch('https://api.videodb.io/collection/{collection_id}/generate/audio/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.videodb.io/collection/{collection_id}/generate/audio/");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-access-token: <api-key>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.videodb.io/collection/{collection_id}/generate/audio/");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-access-token: <api-key>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}");
CURLcode ret = curl_easy_perform(hnd);val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"prompt\": \"Generate upbeat background music\",\n \"audio_type\": \"music\",\n \"callback_url\": \"https://webhook.example.com/callback\"\n}")
val request = Request.Builder()
.url("https://api.videodb.io/collection/{collection_id}/generate/audio/")
.post(body)
.addHeader("x-access-token", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute(){
"success": true,
"status": "processing",
"data": {
"id": "job-123",
"output_url": "https://api.videodb.io/async-response/job-123"
}
}Generate music, sound effects, and AI voices from text. The SDK provides specialized methods for each audio type with appropriate parameters.
Music Generation
Create background music and ambient soundtracks from text prompts.import videodb
conn = videodb.connect(api_key="your_api_key")
coll = conn.get_collection()
music = coll.generate_music(
prompt="Upbeat electronic dance music",
duration=10
)
print(music.id)
print(music.generate_url())
import { connect } from 'videodb';
const conn = connect({ apiKey: 'your_api_key' });
const coll = await conn.getCollection();
const music = await coll.generateMusic(
"Upbeat electronic dance music",
10
);
console.log(music.id);
console.log(await music.generateUrl());
Sound Effect Generation
Generate sound effects and environmental audio from descriptions.import videodb
conn = videodb.connect(api_key="your_api_key")
coll = conn.get_collection()
sfx = coll.generate_sound_effect(
prompt="Heavy rain with distant thunder",
duration=5
)
print(sfx.id)
print(sfx.generate_url())
import { connect } from 'videodb';
const conn = connect({ apiKey: 'your_api_key' });
const coll = await conn.getCollection();
const sfx = await coll.generateSoundEffect(
"Heavy rain with distant thunder",
5
);
console.log(sfx.id);
console.log(await sfx.generateUrl());
Voice Generation
Convert text to natural-sounding speech in multiple voices.import videodb
conn = videodb.connect(api_key="your_api_key")
coll = conn.get_collection()
voice = coll.generate_voice(
text="Welcome to our video demo",
voice_name="Default"
)
print(voice.id)
print(voice.generate_url())
import { connect } from 'videodb';
const conn = connect({ apiKey: 'your_api_key' });
const coll = await conn.getCollection();
const voice = await coll.generateVoice(
"Welcome to our video demo",
"Default"
);
console.log(voice.id);
console.log(await voice.generateUrl());
- Default duration is 5 seconds for music, 2 seconds for sound effects
- Audio IDs have an
a-prefix (e.g.,a-a1b2c3d4) - Generation is asynchronous; use
callback_urlfor webhook notification - All audio returns an Audio object with
generate_url()method
Generative Media Guide
Learn about all AI generation capabilities
Voiceovers Tutorial
Add narration to silent footage with AI voices
Authorizations
API key for authentication (sk-xxx format)
Path Parameters
Example:
"default"
Body
application/json
⌘I