Skip to main content
POST
/
libraries
/
{libraryId}
/
transcoding
/
profiles
Create Transcoding Profile
curl --request POST \
  --url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
"{\n  \"name\": \"Vidinfra Ultra Secure Profile\",\n  \"description\": \"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\",\n  \"transcoding\": {\n    \"format\": [\n      \"abr\"\n    ],\n    \"resolutions\": [\n      \"144p\",\n      \"240p\",\n      \"360p\",\n      \"480p\",\n      \"720p\",\n      \"1080p\",\n      \"1440p\",\n      \"2160p\"\n    ],\n    \"video_codec\": [\n      \"h264\"\n    ],\n    \"per_title_encoding\": true, // default 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\": { // default\n      \"mode\": \"auto\",\n      \"format\": \"jpg\",\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}"
'
import requests

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

payload = "{
\"name\": \"Vidinfra Ultra Secure Profile\",
\"description\": \"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\",
\"transcoding\": {
\"format\": [
\"abr\"
],
\"resolutions\": [
\"144p\",
\"240p\",
\"360p\",
\"480p\",
\"720p\",
\"1080p\",
\"1440p\",
\"2160p\"
],
\"video_codec\": [
\"h264\"
],
\"per_title_encoding\": true, // default 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\": { // default
\"mode\": \"auto\",
\"format\": \"jpg\",
\"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.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify('{\n "name": "Vidinfra Ultra Secure Profile",\n "description": "4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.",\n "transcoding": {\n "format": [\n "abr"\n ],\n "resolutions": [\n "144p",\n "240p",\n "360p",\n "480p",\n "720p",\n "1080p",\n "1440p",\n "2160p"\n ],\n "video_codec": [\n "h264"\n ],\n "per_title_encoding": true, // default 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": { // default\n "mode": "auto",\n "format": "jpg",\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}')
};

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

payload := strings.NewReader("\"{\\n \\\"name\\\": \\\"Vidinfra Ultra Secure Profile\\\",\\n \\\"description\\\": \\\"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\\\",\\n \\\"transcoding\\\": {\\n \\\"format\\\": [\\n \\\"abr\\\"\\n ],\\n \\\"resolutions\\\": [\\n \\\"144p\\\",\\n \\\"240p\\\",\\n \\\"360p\\\",\\n \\\"480p\\\",\\n \\\"720p\\\",\\n \\\"1080p\\\",\\n \\\"1440p\\\",\\n \\\"2160p\\\"\\n ],\\n \\\"video_codec\\\": [\\n \\\"h264\\\"\\n ],\\n \\\"per_title_encoding\\\": true, // default 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\\\": { // default\\n \\\"mode\\\": \\\"auto\\\",\\n \\\"format\\\": \\\"jpg\\\",\\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("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}/transcoding/profiles")

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\\\": \\\"Vidinfra Ultra Secure Profile\\\",\\n \\\"description\\\": \\\"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\\\",\\n \\\"transcoding\\\": {\\n \\\"format\\\": [\\n \\\"abr\\\"\\n ],\\n \\\"resolutions\\\": [\\n \\\"144p\\\",\\n \\\"240p\\\",\\n \\\"360p\\\",\\n \\\"480p\\\",\\n \\\"720p\\\",\\n \\\"1080p\\\",\\n \\\"1440p\\\",\\n \\\"2160p\\\"\\n ],\\n \\\"video_codec\\\": [\\n \\\"h264\\\"\\n ],\\n \\\"per_title_encoding\\\": true, // default 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\\\": { // default\\n \\\"mode\\\": \\\"auto\\\",\\n \\\"format\\\": \\\"jpg\\\",\\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.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/transcoding/profiles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("\"{\\n \\\"name\\\": \\\"Vidinfra Ultra Secure Profile\\\",\\n \\\"description\\\": \\\"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\\\",\\n \\\"transcoding\\\": {\\n \\\"format\\\": [\\n \\\"abr\\\"\\n ],\\n \\\"resolutions\\\": [\\n \\\"144p\\\",\\n \\\"240p\\\",\\n \\\"360p\\\",\\n \\\"480p\\\",\\n \\\"720p\\\",\\n \\\"1080p\\\",\\n \\\"1440p\\\",\\n \\\"2160p\\\"\\n ],\\n \\\"video_codec\\\": [\\n \\\"h264\\\"\\n ],\\n \\\"per_title_encoding\\\": true, // default 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\\\": { // default\\n \\\"mode\\\": \\\"auto\\\",\\n \\\"format\\\": \\\"jpg\\\",\\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");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("\"{\\n \\\"name\\\": \\\"Vidinfra Ultra Secure Profile\\\",\\n \\\"description\\\": \\\"4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.\\\",\\n \\\"transcoding\\\": {\\n \\\"format\\\": [\\n \\\"abr\\\"\\n ],\\n \\\"resolutions\\\": [\\n \\\"144p\\\",\\n \\\"240p\\\",\\n \\\"360p\\\",\\n \\\"480p\\\",\\n \\\"720p\\\",\\n \\\"1080p\\\",\\n \\\"1440p\\\",\\n \\\"2160p\\\"\\n ],\\n \\\"video_codec\\\": [\\n \\\"h264\\\"\\n ],\\n \\\"per_title_encoding\\\": true, // default 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\\\": { // default\\n \\\"mode\\\": \\\"auto\\\",\\n \\\"format\\\": \\\"jpg\\\",\\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.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}/transcoding/profiles",
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": "Vidinfra Ultra Secure Profile",
"description": "4K adaptive bitrate profile with AES encryption, DRM, watermark, and subtitle generation.",
"transcoding": {
"format": [
"abr"
],
"resolutions": [
"144p",
"240p",
"360p",
"480p",
"720p",
"1080p",
"1440p",
"2160p"
],
"video_codec": [
"h264"
],
"per_title_encoding": true, // default 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": { // default
"mode": "auto",
"format": "jpg",
"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-16T10:20:10.613203744+06:00",
    "created_at": "2025-10-16T10:20:10.613203744+06:00",
    "created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
    "updated_by": null,
    "deleted_at": null,
    "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": "1e293fc8-63a4-449d-aae2-dd460a025b45",
    "organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35",
    "library_id": "3b06c833-b73c-43c3-8794-a123a0a6ef1d",
    "is_default": false
  },
  "message": "Library 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

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.

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