Pull Video
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull"
payload = { "url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" }
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({
url: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4'
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull', 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}/videos/pull"
payload := strings.NewReader("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\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}/videos/pull")
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 \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\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}/videos/pull",
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([
'url' => 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4'
]),
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": {
"updated_at": "2025-11-10T14:51:04.93815986+06:00",
"created_at": "2025-11-09T11:38:37.855064+06:00",
"assets": {
"thumbnails": {
"preview_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/preview.webp",
"sprite_vtt_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/sprite.vtt",
"default_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail.jpg",
"urls": [
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_1.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_2.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_3.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_4.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_5.jpg"
]
},
"playback": {
"direct_play_url": "/stream/314221a1-3cbf-4d3c-846e-f6c22bc43064/default/44802b1a-cadf-40d0-92a8-24de96382402",
"hls_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/playlist.m3u8",
"dash_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/playlist.mpd",
"embed_url": "/stream/314221a1-3cbf-4d3c-846e-f6c22bc43064/default/44802b1a-cadf-40d0-92a8-24de96382402"
}
},
"folder_id": null,
"format": "abr",
"status": "created",
"description": "this is my description",
"name": "Test video update",
"resolutions": [
"240p",
"360p",
"480p",
"720p",
"1080p"
],
"tags": [
"trending",
"viral"
],
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"size_bytes": 54321065,
"raw_size_bytes": 98765465,
"duration_seconds": 0,
"duration": 1265,
"organization_id": "a7f590b4-3fd7-42a4-82bb-a7cfa6aa9d04",
"id": "44802b1a-cadf-40d0-92a8-24de96382402",
"library_id": "314221a1-3cbf-4d3c-846e-f6c22bc43064"
},
"message": "Video Updated 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
}Video
Pull Video
Uploads video directly under a library.
POST
/
libraries
/
{libraryId}
/
videos
/
pull
Pull Video
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull"
payload = { "url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" }
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({
url: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4'
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull', 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}/videos/pull"
payload := strings.NewReader("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\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}/videos/pull")
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 \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/pull");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\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}/videos/pull",
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([
'url' => 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4'
]),
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": {
"updated_at": "2025-11-10T14:51:04.93815986+06:00",
"created_at": "2025-11-09T11:38:37.855064+06:00",
"assets": {
"thumbnails": {
"preview_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/preview.webp",
"sprite_vtt_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/sprite.vtt",
"default_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail.jpg",
"urls": [
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_1.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_2.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_3.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_4.jpg",
"https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/thumbnail_5.jpg"
]
},
"playback": {
"direct_play_url": "/stream/314221a1-3cbf-4d3c-846e-f6c22bc43064/default/44802b1a-cadf-40d0-92a8-24de96382402",
"hls_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/playlist.m3u8",
"dash_url": "https://example.com/44802b1a-cadf-40d0-92a8-24de96382402/playlist.mpd",
"embed_url": "/stream/314221a1-3cbf-4d3c-846e-f6c22bc43064/default/44802b1a-cadf-40d0-92a8-24de96382402"
}
},
"folder_id": null,
"format": "abr",
"status": "created",
"description": "this is my description",
"name": "Test video update",
"resolutions": [
"240p",
"360p",
"480p",
"720p",
"1080p"
],
"tags": [
"trending",
"viral"
],
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"size_bytes": 54321065,
"raw_size_bytes": 98765465,
"duration_seconds": 0,
"duration": 1265,
"organization_id": "a7f590b4-3fd7-42a4-82bb-a7cfa6aa9d04",
"id": "44802b1a-cadf-40d0-92a8-24de96382402",
"library_id": "314221a1-3cbf-4d3c-846e-f6c22bc43064"
},
"message": "Video Updated 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
application/json
Source URL of the uploaded or external video file.
The title or display name of the video.
Short summary or context about the video content.
Key–value pairs containing additional information or custom attributes for the video.
Show child attributes
Show child attributes
Optional list of tags or labels for categorizing the video.
ID of the folder under which this video will be created. Use null to store it directly in the library root.
⌘I