Update Video
curl --request PATCH \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Test video update",
"description": "this is my description updated",
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"tags": [
"trending",
"viral"
]
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}"
payload = {
"name": "Test video update",
"description": "this is my description updated",
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"tags": ["trending", "viral"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Test video update',
description: 'this is my description updated',
url: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
metadata: [{key: 'note', value: 'this value of note'}],
tags: ['trending', 'viral']
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}', 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/{videoId}"
payload := strings.NewReader("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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/{videoId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.patch("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}", false);
var response = await client.PatchAsync(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/{videoId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Test video update',
'description' => 'this is my description updated',
'url' => 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
'metadata' => [
[
'key' => 'note',
'value' => 'this value of note'
]
],
'tags' => [
'trending',
'viral'
]
]),
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
Update Video
Updates metadata or visibility settings for a specific video within a library. This endpoint allows partial updates, meaning only the provided fields will be modified.
PATCH
/
libraries
/
{libraryId}
/
videos
/
{videoId}
Update Video
curl --request PATCH \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Test video update",
"description": "this is my description updated",
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"tags": [
"trending",
"viral"
]
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}"
payload = {
"name": "Test video update",
"description": "this is my description updated",
"url": "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
"metadata": [
{
"key": "note",
"value": "this value of note"
}
],
"tags": ["trending", "viral"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Test video update',
description: 'this is my description updated',
url: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
metadata: [{key: 'note', value: 'this value of note'}],
tags: ['trending', 'viral']
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}', 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/{videoId}"
payload := strings.NewReader("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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/{videoId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.patch("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/videos/{videoId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Test video update\",\n \"description\": \"this is my description updated\",\n \"url\": \"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\",\n \"metadata\": [\n {\n \"key\": \"note\",\n \"value\": \"this value of note\"\n }\n ],\n \"tags\": [\n \"trending\",\n \"viral\"\n ]\n}", false);
var response = await client.PatchAsync(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/{videoId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Test video update',
'description' => 'this is my description updated',
'url' => 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
'metadata' => [
[
'key' => 'note',
'value' => 'this value of note'
]
],
'tags' => [
'trending',
'viral'
]
]),
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.
Unique identifier of the targeted video resource.
Body
application/json
The title or display name of the video.
Short summary or context about the video content.
Source URL of the uploaded or external video file.
Key–value pairs containing additional information or custom attributes for the video.
Show child attributes
Show child attributes
ID of the folder under which this video will be created. Use null to store it directly in the library root.
Optional list of tags or labels for categorizing the video.
⌘I