curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Default Player2"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players"
payload = { "name": "Default Player2" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Default Player2'})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players"
payload := strings.NewReader("{\n \"name\": \"Default Player2\"\n}")
req, _ := http.NewRequest("POST", 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))
}require 'uri'
require 'net/http'
url = URI("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default Player2\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Default Player2\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Default Player2\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players",
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([
'name' => 'Default Player2'
]),
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;
}{
"data": {
"created_at": "2025-10-19T20:00:43.475427+06:00",
"updated_at": "2025-10-19T20:00:43.475427+06:00",
"created_by": "ce877d84-c433-46fc-803d-ede73a8375bc",
"updated_by": "ce877d84-c433-46fc-803d-ede73a8375bc",
"font_family": "Rubik",
"custom_html_footer": "<footer>Powered by MyApp</footer>",
"name": "Default Player",
"language": "en",
"custom_html_head": "<!-- Custom analytics script -->",
"playback_speeds": [
0.5,
1,
1.5,
2
],
"appearance": {
"primary_color": "#1D9BF0",
"caption_font_color": "#FFFFFF",
"caption_background_color": "#000000",
"font_size": 16,
"caption_font_size": 18
},
"library_id": "b17ccdc7-eb3d-4d03-b0af-781d3c38c7e9",
"organization_id": "8babf060-e844-49e5-893c-35d0bf2edfc6",
"id": "1aaff3a6-5d28-4be5-a503-eff1f33e7010",
"controls": {
"backward": true,
"forward": true,
"big_play_button": true,
"captions": true,
"current_time": true,
"duration": true,
"fullscreen": true,
"mute": true,
"picture_in_picture": true,
"play_pause": true,
"progress": true,
"settings": true,
"volume": true
},
"is_beta_enabled": true,
"is_default": false,
"enable_resumable_position": true
},
"message": "Player Created Successfully",
"success": true
}{
"message": "Invalid Request",
"success": false
}{
"code": "auth_type_not_found",
"message": "Could not determine authentication type from request. Please provide a valid Authorization header or X-API-Key header.",
"success": false
}{
"message": "Resource not found",
"success": false
}{
"message": "Invalid Request",
"errors": [
{
"field": "field_name",
"code": "validation_required",
"message": "This field is required"
}
],
"success": false
}{
"message": "Internal server error",
"success": false
}Create Player
Create a player for your video, and customise it.
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Default Player2"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players"
payload = { "name": "Default Player2" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Default Player2'})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players"
payload := strings.NewReader("{\n \"name\": \"Default Player2\"\n}")
req, _ := http.NewRequest("POST", 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))
}require 'uri'
require 'net/http'
url = URI("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default Player2\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Default Player2\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Default Player2\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/players",
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([
'name' => 'Default Player2'
]),
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;
}{
"data": {
"created_at": "2025-10-19T20:00:43.475427+06:00",
"updated_at": "2025-10-19T20:00:43.475427+06:00",
"created_by": "ce877d84-c433-46fc-803d-ede73a8375bc",
"updated_by": "ce877d84-c433-46fc-803d-ede73a8375bc",
"font_family": "Rubik",
"custom_html_footer": "<footer>Powered by MyApp</footer>",
"name": "Default Player",
"language": "en",
"custom_html_head": "<!-- Custom analytics script -->",
"playback_speeds": [
0.5,
1,
1.5,
2
],
"appearance": {
"primary_color": "#1D9BF0",
"caption_font_color": "#FFFFFF",
"caption_background_color": "#000000",
"font_size": 16,
"caption_font_size": 18
},
"library_id": "b17ccdc7-eb3d-4d03-b0af-781d3c38c7e9",
"organization_id": "8babf060-e844-49e5-893c-35d0bf2edfc6",
"id": "1aaff3a6-5d28-4be5-a503-eff1f33e7010",
"controls": {
"backward": true,
"forward": true,
"big_play_button": true,
"captions": true,
"current_time": true,
"duration": true,
"fullscreen": true,
"mute": true,
"picture_in_picture": true,
"play_pause": true,
"progress": true,
"settings": true,
"volume": true
},
"is_beta_enabled": true,
"is_default": false,
"enable_resumable_position": true
},
"message": "Player Created Successfully",
"success": true
}{
"message": "Invalid Request",
"success": false
}{
"code": "auth_type_not_found",
"message": "Could not determine authentication type from request. Please provide a valid Authorization header or X-API-Key header.",
"success": false
}{
"message": "Resource not found",
"success": false
}{
"message": "Invalid Request",
"errors": [
{
"field": "field_name",
"code": "validation_required",
"message": "This field is required"
}
],
"success": false
}{
"message": "Internal server error",
"success": false
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier of the library.
Body
Name of the player configuration used to identify it within your account.
Default language code for interface text (e.g., en, es).
Font family used for player UI text.
Custom HTML or script snippets to embed in the player.
List of playback speed options available to users (e.g., 0.5x, 1x, 1.5x, 2x).
Enables experimental or beta player features for testing.
Marks this player configuration as the default for all videos.
Allows viewers to resume playback from their last watched position.
VAST ad tag URL for video ad integration. Leave empty if ads are not used.
Defines watermark display settings such as font, color, and movement interval.
Show child attributes
Show child attributes
Contains analytics integration details for tracking player performance and engagement.
Show child attributes
Show child attributes
Controls the visual appearance of the player including colors, fonts, and logo.
Show child attributes
Show child attributes
Defines player control visibility and functionality, including playback, captions, and casting options.
Show child attributes
Show child attributes