Skip to main content
GET
/
v1
/
videos
/
{id}
/
clips
/
{clipId}
/
sources
/
{sourceId}
/
waveform
Get the audio waveform JSON for a source
curl --request GET \
  --url https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform', 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}/clips/{clipId}/sources/{sourceId}/waveform",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.tella.com/v1/videos/{id}/clips/{clipId}/sources/{sourceId}/waveform")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "bits": 8,
  "channels": 1,
  "data": [
    123
  ],
  "length": 12345,
  "sampleRate": 48000,
  "samplesPerPixel": 256,
  "version": 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

Authorization
string
header
required

API key obtained from your Tella account settings

Path Parameters

id
string
required

Video ID

clipId
string
required

Clip ID

sourceId
string
required

Source ID

Response

OK

Audio waveform data for a source, in BBC audiowaveform JSON format. Use the data array to render a custom waveform visualization.

bits
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

8

channels
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

1

data
number[]
required

Raw audio level data (BBC audiowaveform format)

length
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

12345

sampleRate
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

48000

samplesPerPixel
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

256

version
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
Example:

2