curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form 'file=<string>'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {
"Authorization": "<api-key>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
options.body = form;
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: multipart/form-data"
],
]);
$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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/")
.header("Authorization", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Upload real estate background music
Upload one audio file as a project audio asset and select it as background music. Set background_music_volume with the project update route. Music is mixed during the next render, so shot video generation is not needed.
curl --request POST \
--url https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form 'file=<string>'import requests
url = "https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {
"Authorization": "<api-key>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
options.body = form;
fetch('https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: multipart/form-data"
],
]);
$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://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/")
.header("Authorization", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://backend.tensorpix.ai/api/v2/real-estate/projects/{project_id}/background-music/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"file": "<string>",
"duration_s": 123,
"file_size": 123,
"bitrate": 123,
"sample_rate": 123,
"channels": 123
}{
"detail": "<unknown>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"error_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Token-based authentication with required prefix "Token"
Path Parameters
Body
Serializer for uploading new background music audio assets.
Audio file stored on S3. Pre-signed URL may expire. To generate a new URL, call the endpoint again. If the field is null, the audio hasn't been completely uploaded.
Response
Serializer for AudioAsset with basic fields.
Human-readable asset name.
Datetime when the record was created.
Audio file stored on S3. Pre-signed URL may expire. To generate a new URL, call the endpoint again. If the field is null, the audio hasn't been completely uploaded.
Audio duration in seconds.
File size in bytes.
Audio bitrate in bits per second.
Audio sample rate in Hz (e.g., 44100, 48000).
Number of audio channels (1=mono, 2=stereo, etc.).
Was this page helpful?