Skip to main content
PUT
/
libraries
/
{libraryId}
/
transcoding
/
profiles
/
{profileId}
Update Transcoding Profile
curl --request PUT \
  --url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Vidinfra Ultra Secure Profile x",
  "transcoding": {
    "format": [
      "abr"
    ],
    "resolutions": [
      "144p",
      "240p",
      "360p",
      "480p",
      "720p",
      "1080p",
      "1440p"
    ],
    "video_codec": [
      "h265"
    ],
    "per_title_encoding": true,
    "image_overlay": {
      "url": "https://cdn.vidinfra.com/watermark.png",
      "position": "bottom-right",
      "opacity": 0.8,
      "size": {
        "width": 100,
        "height": 60
      },
      "margin": {
        "x": 100,
        "y": 60
      }
    },
    "thumbnail": {
      "mode": "auto",
      "format": "jpeg",
      "count": 6,
      "spritesheet": true
    },
    "generate_subtitles": {
      "audio_language": "en",
      "subtitle_languages": [
        "es",
        "fr"
      ]
    },
    "drm": {
      "enabled": true,
      "widevine": {
        "signing_secret": "YOUR_SECURE_PROXY_SECRET",
        "license_proxy_url": "https://widevine.yourdomain.com/licence/"
      },
      "fairplay": {
        "license_url": "https://license.fairplay.vidinfra.com",
        "certificate_url": "https://yourdomain.com/fairplay.cer",
        "application_service_key": "YOUR_APPLE_SERVICE_KEY",
        "private_key_passphrase": "YOUR_PRIVATE_KEY_PASSPHRASE"
      }
    },
    "basic_drm": true,
    "mp4_access": false,
    "keep_original": false
  }
}
'
import requests

url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId}"

payload = {
"name": "Vidinfra Ultra Secure Profile x",
"transcoding": {
"format": ["abr"],
"resolutions": ["144p", "240p", "360p", "480p", "720p", "1080p", "1440p"],
"video_codec": ["h265"],
"per_title_encoding": True,
"image_overlay": {
"url": "https://cdn.vidinfra.com/watermark.png",
"position": "bottom-right",
"opacity": 0.8,
"size": {
"width": 100,
"height": 60
},
"margin": {
"x": 100,
"y": 60
}
},
"thumbnail": {
"mode": "auto",
"format": "jpeg",
"count": 6,
"spritesheet": True
},
"generate_subtitles": {
"audio_language": "en",
"subtitle_languages": ["es", "fr"]
},
"drm": {
"enabled": True,
"widevine": {
"signing_secret": "YOUR_SECURE_PROXY_SECRET",
"license_proxy_url": "https://widevine.yourdomain.com/licence/"
},
"fairplay": {
"license_url": "https://license.fairplay.vidinfra.com",
"certificate_url": "https://yourdomain.com/fairplay.cer",
"application_service_key": "YOUR_APPLE_SERVICE_KEY",
"private_key_passphrase": "YOUR_PRIVATE_KEY_PASSPHRASE"
}
},
"basic_drm": True,
"mp4_access": False,
"keep_original": False
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Vidinfra Ultra Secure Profile x',
transcoding: {
format: ['abr'],
resolutions: ['144p', '240p', '360p', '480p', '720p', '1080p', '1440p'],
video_codec: ['h265'],
per_title_encoding: true,
image_overlay: {
url: 'https://cdn.vidinfra.com/watermark.png',
position: 'bottom-right',
opacity: 0.8,
size: {width: 100, height: 60},
margin: {x: 100, y: 60}
},
thumbnail: {mode: 'auto', format: 'jpeg', count: 6, spritesheet: true},
generate_subtitles: {audio_language: 'en', subtitle_languages: ['es', 'fr']},
drm: {
enabled: true,
widevine: {
signing_secret: 'YOUR_SECURE_PROXY_SECRET',
license_proxy_url: 'https://widevine.yourdomain.com/licence/'
},
fairplay: {
license_url: 'https://license.fairplay.vidinfra.com',
certificate_url: 'https://yourdomain.com/fairplay.cer',
application_service_key: 'YOUR_APPLE_SERVICE_KEY',
private_key_passphrase: 'YOUR_PRIVATE_KEY_PASSPHRASE'
}
},
basic_drm: true,
mp4_access: false,
keep_original: false
}
})
};

fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId}', 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}/transcoding/profiles/{profileId}"

payload := strings.NewReader("{\n \"name\": \"Vidinfra Ultra Secure Profile x\",\n \"transcoding\": {\n \"format\": [\n \"abr\"\n ],\n \"resolutions\": [\n \"144p\",\n \"240p\",\n \"360p\",\n \"480p\",\n \"720p\",\n \"1080p\",\n \"1440p\"\n ],\n \"video_codec\": [\n \"h265\"\n ],\n \"per_title_encoding\": true,\n \"image_overlay\": {\n \"url\": \"https://cdn.vidinfra.com/watermark.png\",\n \"position\": \"bottom-right\",\n \"opacity\": 0.8,\n \"size\": {\n \"width\": 100,\n \"height\": 60\n },\n \"margin\": {\n \"x\": 100,\n \"y\": 60\n }\n },\n \"thumbnail\": {\n \"mode\": \"auto\",\n \"format\": \"jpeg\",\n \"count\": 6,\n \"spritesheet\": true\n },\n \"generate_subtitles\": {\n \"audio_language\": \"en\",\n \"subtitle_languages\": [\n \"es\",\n \"fr\"\n ]\n },\n \"drm\": {\n \"enabled\": true,\n \"widevine\": {\n \"signing_secret\": \"YOUR_SECURE_PROXY_SECRET\",\n \"license_proxy_url\": \"https://widevine.yourdomain.com/licence/\"\n },\n \"fairplay\": {\n \"license_url\": \"https://license.fairplay.vidinfra.com\",\n \"certificate_url\": \"https://yourdomain.com/fairplay.cer\",\n \"application_service_key\": \"YOUR_APPLE_SERVICE_KEY\",\n \"private_key_passphrase\": \"YOUR_PRIVATE_KEY_PASSPHRASE\"\n }\n },\n \"basic_drm\": true,\n \"mp4_access\": false,\n \"keep_original\": false\n }\n}")

req, _ := http.NewRequest("PUT", 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}/transcoding/profiles/{profileId}")

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

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Vidinfra Ultra Secure Profile x\",\n \"transcoding\": {\n \"format\": [\n \"abr\"\n ],\n \"resolutions\": [\n \"144p\",\n \"240p\",\n \"360p\",\n \"480p\",\n \"720p\",\n \"1080p\",\n \"1440p\"\n ],\n \"video_codec\": [\n \"h265\"\n ],\n \"per_title_encoding\": true,\n \"image_overlay\": {\n \"url\": \"https://cdn.vidinfra.com/watermark.png\",\n \"position\": \"bottom-right\",\n \"opacity\": 0.8,\n \"size\": {\n \"width\": 100,\n \"height\": 60\n },\n \"margin\": {\n \"x\": 100,\n \"y\": 60\n }\n },\n \"thumbnail\": {\n \"mode\": \"auto\",\n \"format\": \"jpeg\",\n \"count\": 6,\n \"spritesheet\": true\n },\n \"generate_subtitles\": {\n \"audio_language\": \"en\",\n \"subtitle_languages\": [\n \"es\",\n \"fr\"\n ]\n },\n \"drm\": {\n \"enabled\": true,\n \"widevine\": {\n \"signing_secret\": \"YOUR_SECURE_PROXY_SECRET\",\n \"license_proxy_url\": \"https://widevine.yourdomain.com/licence/\"\n },\n \"fairplay\": {\n \"license_url\": \"https://license.fairplay.vidinfra.com\",\n \"certificate_url\": \"https://yourdomain.com/fairplay.cer\",\n \"application_service_key\": \"YOUR_APPLE_SERVICE_KEY\",\n \"private_key_passphrase\": \"YOUR_PRIVATE_KEY_PASSPHRASE\"\n }\n },\n \"basic_drm\": true,\n \"mp4_access\": false,\n \"keep_original\": false\n }\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Vidinfra Ultra Secure Profile x\",\n \"transcoding\": {\n \"format\": [\n \"abr\"\n ],\n \"resolutions\": [\n \"144p\",\n \"240p\",\n \"360p\",\n \"480p\",\n \"720p\",\n \"1080p\",\n \"1440p\"\n ],\n \"video_codec\": [\n \"h265\"\n ],\n \"per_title_encoding\": true,\n \"image_overlay\": {\n \"url\": \"https://cdn.vidinfra.com/watermark.png\",\n \"position\": \"bottom-right\",\n \"opacity\": 0.8,\n \"size\": {\n \"width\": 100,\n \"height\": 60\n },\n \"margin\": {\n \"x\": 100,\n \"y\": 60\n }\n },\n \"thumbnail\": {\n \"mode\": \"auto\",\n \"format\": \"jpeg\",\n \"count\": 6,\n \"spritesheet\": true\n },\n \"generate_subtitles\": {\n \"audio_language\": \"en\",\n \"subtitle_languages\": [\n \"es\",\n \"fr\"\n ]\n },\n \"drm\": {\n \"enabled\": true,\n \"widevine\": {\n \"signing_secret\": \"YOUR_SECURE_PROXY_SECRET\",\n \"license_proxy_url\": \"https://widevine.yourdomain.com/licence/\"\n },\n \"fairplay\": {\n \"license_url\": \"https://license.fairplay.vidinfra.com\",\n \"certificate_url\": \"https://yourdomain.com/fairplay.cer\",\n \"application_service_key\": \"YOUR_APPLE_SERVICE_KEY\",\n \"private_key_passphrase\": \"YOUR_PRIVATE_KEY_PASSPHRASE\"\n }\n },\n \"basic_drm\": true,\n \"mp4_access\": false,\n \"keep_original\": false\n }\n}")
.asString();
using RestSharp;


var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Vidinfra Ultra Secure Profile x\",\n \"transcoding\": {\n \"format\": [\n \"abr\"\n ],\n \"resolutions\": [\n \"144p\",\n \"240p\",\n \"360p\",\n \"480p\",\n \"720p\",\n \"1080p\",\n \"1440p\"\n ],\n \"video_codec\": [\n \"h265\"\n ],\n \"per_title_encoding\": true,\n \"image_overlay\": {\n \"url\": \"https://cdn.vidinfra.com/watermark.png\",\n \"position\": \"bottom-right\",\n \"opacity\": 0.8,\n \"size\": {\n \"width\": 100,\n \"height\": 60\n },\n \"margin\": {\n \"x\": 100,\n \"y\": 60\n }\n },\n \"thumbnail\": {\n \"mode\": \"auto\",\n \"format\": \"jpeg\",\n \"count\": 6,\n \"spritesheet\": true\n },\n \"generate_subtitles\": {\n \"audio_language\": \"en\",\n \"subtitle_languages\": [\n \"es\",\n \"fr\"\n ]\n },\n \"drm\": {\n \"enabled\": true,\n \"widevine\": {\n \"signing_secret\": \"YOUR_SECURE_PROXY_SECRET\",\n \"license_proxy_url\": \"https://widevine.yourdomain.com/licence/\"\n },\n \"fairplay\": {\n \"license_url\": \"https://license.fairplay.vidinfra.com\",\n \"certificate_url\": \"https://yourdomain.com/fairplay.cer\",\n \"application_service_key\": \"YOUR_APPLE_SERVICE_KEY\",\n \"private_key_passphrase\": \"YOUR_PRIVATE_KEY_PASSPHRASE\"\n }\n },\n \"basic_drm\": true,\n \"mp4_access\": false,\n \"keep_original\": false\n }\n}", false);
var response = await client.PutAsync(request);

Console.WriteLine("{0}", response.Content);
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles/{profileId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Vidinfra Ultra Secure Profile x',
'transcoding' => [
'format' => [
'abr'
],
'resolutions' => [
'144p',
'240p',
'360p',
'480p',
'720p',
'1080p',
'1440p'
],
'video_codec' => [
'h265'
],
'per_title_encoding' => true,
'image_overlay' => [
'url' => 'https://cdn.vidinfra.com/watermark.png',
'position' => 'bottom-right',
'opacity' => 0.8,
'size' => [
'width' => 100,
'height' => 60
],
'margin' => [
'x' => 100,
'y' => 60
]
],
'thumbnail' => [
'mode' => 'auto',
'format' => 'jpeg',
'count' => 6,
'spritesheet' => true
],
'generate_subtitles' => [
'audio_language' => 'en',
'subtitle_languages' => [
'es',
'fr'
]
],
'drm' => [
'enabled' => true,
'widevine' => [
'signing_secret' => 'YOUR_SECURE_PROXY_SECRET',
'license_proxy_url' => 'https://widevine.yourdomain.com/licence/'
],
'fairplay' => [
'license_url' => 'https://license.fairplay.vidinfra.com',
'certificate_url' => 'https://yourdomain.com/fairplay.cer',
'application_service_key' => 'YOUR_APPLE_SERVICE_KEY',
'private_key_passphrase' => 'YOUR_PRIVATE_KEY_PASSPHRASE'
]
],
'basic_drm' => true,
'mp4_access' => false,
'keep_original' => false
]
]),
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-10-16T11:57:16.272724862+06:00",
    "created_at": "2025-10-16T11:04:29.16848Z",
    "created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
    "updated_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
    "name": "Vidinfra Ultra Secure Profile",
    "description": "4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.",
    "transcoding": {
      "drm": {
        "widevine": {
          "signing_secret": "YOUR_SECURE_PROXY_SECRET",
          "license_proxy_url": "https://widevine.yourdomain.com/licence/"
        },
        "fairplay": {
          "license_url": "https://license.fairplay.vidinfra.com",
          "certificate_url": "https://yourdomain.com/fairplay.cer",
          "application_service_key": "YOUR_APPLE_SERVICE_KEY",
          "private_key_passphrase": "YOUR_PRIVATE_KEY_PASSPHRASE"
        },
        "enabled": true
      },
      "format": [
        "abr"
      ],
      "generate_subtitles": {
        "audio_language": "en",
        "subtitle_languages": [
          "es",
          "fr"
        ]
      },
      "resolutions": [
        "144p",
        "240p",
        "360p",
        "480p",
        "720p",
        "1080p",
        "1440p",
        "2160p"
      ],
      "video_codec": [
        "h264"
      ],
      "thumbnail": {
        "mode": "auto",
        "format": "jpg",
        "count": 6,
        "spritesheet": true
      },
      "image_overlay": {
        "url": "https://cdn.vidinfra.com/watermark.png",
        "position": "bottom-right",
        "opacity": 0.8,
        "size": {
          "width": 100,
          "height": 60
        },
        "margin": {
          "x": 100,
          "y": 60
        }
      },
      "per_title_encoding": true,
      "basic_drm": true,
      "mp4_access": false,
      "keep_original": false
    },
    "id": "49f644c1-83cc-41cd-a1dd-19291b008ba4",
    "organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35",
    "library_id": "3b06c833-b73c-43c3-8794-a123a0a6ef1d",
    "is_default": false
  },
  "message": "Transcoding profile 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

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

libraryId
string
required

Unique identifier of the library.

profileId
string
required

Unique identifier of the targeted transcoding profile resource.

Body

application/json
name
string
required

The name of the transcoding profile used to identify it within the library.

transcoding
object
required

Transcoding property object.

description
string

Short summary describing the purpose or usage of this profile.

Response

data
object
required
message
string
required
success
boolean
required