Set background music
curl --request PUT \
--url https://api.tella.com/v1/videos/{id}/background-music \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceId": "su_abc123def456",
"name": "Calm Product Tour",
"volume": 0.2
}
'import requests
url = "https://api.tella.com/v1/videos/{id}/background-music"
payload = {
"sourceId": "su_abc123def456",
"name": "Calm Product Tour",
"volume": 0.2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({sourceId: 'su_abc123def456', name: 'Calm Product Tour', volume: 0.2})
};
fetch('https://api.tella.com/v1/videos/{id}/background-music', 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.tella.com/v1/videos/{id}/background-music",
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([
'sourceId' => 'su_abc123def456',
'name' => 'Calm Product Tour',
'volume' => 0.2
]),
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.tella.com/v1/videos/{id}/background-music"
payload := strings.NewReader("{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.tella.com/v1/videos/{id}/background-music")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tella.com/v1/videos/{id}/background-music")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}"
response = http.request(request)
puts response.read_body{
"backgroundMusic": {
"durationMs": 180036,
"name": "Calm Product Tour",
"url": "https://ucarecdn.com/example-track/",
"volume": 0.2
}
}{
"error": {
"code": "bad_request",
"doc_url": "https://tella.tv/docs/api-reference/errors#bad-request",
"message": "The request was malformed or contained invalid parameters."
}
}{
"error": {
"code": "unauthorized",
"doc_url": "https://tella.tv/docs/api-reference/errors#unauthorized",
"message": "Authentication is required. Provide a valid API key."
}
}{
"error": {
"code": "forbidden",
"doc_url": "https://tella.tv/docs/api-reference/errors#forbidden",
"message": "You don't have permission to access this resource."
}
}{
"error": {
"code": "not_found",
"doc_url": "https://tella.tv/docs/api-reference/errors#not-found",
"message": "The requested resource was not found."
}
}{
"error": {
"code": "unprocessable_entity",
"doc_url": "https://tella.tv/docs/api-reference/errors#unprocessable-entity",
"message": "The request was well-formed but contained semantic errors."
}
}{
"error": {
"code": "rate_limit_exceeded",
"doc_url": "https://tella.tv/docs/api-reference/errors#rate-limit-exceeded",
"message": "You have exceeded the rate limit. Please slow down."
}
}{
"error": {
"code": "internal_server_error",
"doc_url": "https://tella.tv/docs/api-reference/errors#internal-server-error",
"message": "An unexpected error occurred on the server."
}
}Videos
Set background music
Sets the video’s background music track. It loops over the whole video and is included in exports. Volume is 0-1 and defaults to 0.2.
PUT
/
v1
/
videos
/
{id}
/
background-music
Set background music
curl --request PUT \
--url https://api.tella.com/v1/videos/{id}/background-music \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceId": "su_abc123def456",
"name": "Calm Product Tour",
"volume": 0.2
}
'import requests
url = "https://api.tella.com/v1/videos/{id}/background-music"
payload = {
"sourceId": "su_abc123def456",
"name": "Calm Product Tour",
"volume": 0.2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({sourceId: 'su_abc123def456', name: 'Calm Product Tour', volume: 0.2})
};
fetch('https://api.tella.com/v1/videos/{id}/background-music', 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.tella.com/v1/videos/{id}/background-music",
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([
'sourceId' => 'su_abc123def456',
'name' => 'Calm Product Tour',
'volume' => 0.2
]),
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.tella.com/v1/videos/{id}/background-music"
payload := strings.NewReader("{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.tella.com/v1/videos/{id}/background-music")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tella.com/v1/videos/{id}/background-music")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceId\": \"su_abc123def456\",\n \"name\": \"Calm Product Tour\",\n \"volume\": 0.2\n}"
response = http.request(request)
puts response.read_body{
"backgroundMusic": {
"durationMs": 180036,
"name": "Calm Product Tour",
"url": "https://ucarecdn.com/example-track/",
"volume": 0.2
}
}{
"error": {
"code": "bad_request",
"doc_url": "https://tella.tv/docs/api-reference/errors#bad-request",
"message": "The request was malformed or contained invalid parameters."
}
}{
"error": {
"code": "unauthorized",
"doc_url": "https://tella.tv/docs/api-reference/errors#unauthorized",
"message": "Authentication is required. Provide a valid API key."
}
}{
"error": {
"code": "forbidden",
"doc_url": "https://tella.tv/docs/api-reference/errors#forbidden",
"message": "You don't have permission to access this resource."
}
}{
"error": {
"code": "not_found",
"doc_url": "https://tella.tv/docs/api-reference/errors#not-found",
"message": "The requested resource was not found."
}
}{
"error": {
"code": "unprocessable_entity",
"doc_url": "https://tella.tv/docs/api-reference/errors#unprocessable-entity",
"message": "The request was well-formed but contained semantic errors."
}
}{
"error": {
"code": "rate_limit_exceeded",
"doc_url": "https://tella.tv/docs/api-reference/errors#rate-limit-exceeded",
"message": "You have exceeded the rate limit. Please slow down."
}
}{
"error": {
"code": "internal_server_error",
"doc_url": "https://tella.tv/docs/api-reference/errors#internal-server-error",
"message": "An unexpected error occurred on the server."
}
}Authorizations
API key obtained from your Tella account settings
Path Parameters
Unique video identifier
Example:
"vid_abc123def456"
Body
application/json
Response
Background music set
One video-wide track that loops over the whole video and is included in exports
Show child attributes
Show child attributes
Related topics
Model Context Protocol (MCP)Add background music to your videoRemove background musicAdjust audio levelsBackgroundsWas this page helpful?
⌘I