Update Transcoding Profile
Update the transcode of a scheduled stream
curl -X POST "https://api.5centscdn.com/v2/streams/scheduledplaylist/1001/transcode" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"vprofiles": [
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"ltc": 5,
"autostop": 0
}'
import requests
import json
url = "https://api.5centscdn.com/v2/streams/scheduledplaylist/1001/transcode"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"vprofiles": [
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"ltc": 5,
"autostop": 0
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/streams/scheduledplaylist/1001/transcode", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"vprofiles": [
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"ltc": 5,
"autostop": 0
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"vprofiles": [
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"ltc": 5,
"autostop": 0
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/streams/scheduledplaylist/1001/transcode", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.5centscdn.com/v2/streams/scheduledplaylist/1001/transcode')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"vprofiles": [
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"ltc": 5,
"autostop": 0
}'
response = http.request(request)
puts response.body
{
"result": "success",
"message": "Stream Updated",
"stream": {
"monitoring_id": null,
"type": "scheduledplaylist",
"id": 71979,
"serviceid": 103,
"name": "103_push_6643_001/one",
"codec": "h264",
"ingests": [
[],
null
],
"protocols": [
[
"HLS"
],
[
"HLS"
]
],
"parentid": 6643,
"server": "N",
"backup": "",
"dedicatedLTC": "1",
"hasAdvancedFeatures": "1",
"monitoring_triggers": null,
"draft": "0",
"disabled": "0",
"created_at": "2026-04-26 18:44:03",
"updated_at": "2026-05-05 15:36:57",
"lastseen_at": "2026-05-05 15:36:11",
"deleted": null,
"ingestsLock": 0,
"protocolsLock": 0,
"status": "Deploying",
"has": {
"rtmp": 0,
"rtsp": 0,
"hls": 1,
"dash": 0,
"rtmpauth": "Y"
},
"fms": {
"server": {
"country": "SouthEast Asia",
"meta": {
"fmsUrl": "rtmp://fms-01-01.5centscdn.com"
}
}
},
"parts": {
"pp": "103_push_6643_001",
"sn": "one",
"full": "103_push_6643_001one"
},
"restream": {},
"playbackurls": {
"scheme": "https",
"url_prefix": "https://stream-abc12-hls-live.stream.example.com",
"rtmp": "rtmp://rtmp.5centscdn.com:1935/",
"rtsp": "rtsp://rtsp.5centscdn.com:554/",
"hlsManifest": "playlist.m3u8",
"dashManifest": "manifest.mpd",
"hls": "https://hash-hls-live.5centscdn.com",
"dash": "https://hash-hls-live.5centscdn.com",
"players": {
"flowplayer": {
"baseQ": "",
"base": "https://cdn.example.com/flowplayer/hls/",
"hls": "https://cdn.example.com/flowplayer/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"videojs": {
"baseQ": "",
"base": "https://cdn.example.com/videojs/hls/",
"hls": "https://cdn.example.com/videojs/hls/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
},
"own": {
"hashes": {
"stream-abc12-hls-live.stream.example.com": {
"hash": "5jlu93s1z7ma6021",
"hls": "https://hash-hls-live.5centscdn.com",
"base64": "aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4",
"dash": "https://hash-hls-live.5centscdn.com",
"base64dash": "aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4"
}
},
"baseQ": "?showcv=true&title=103_push_6643_001/one",
"base": "https://cdn.example.com/player/hls/skin1/5jlu93s1z7ma6021/",
"hls": "https://cdn.example.com/player/hls/skin1/5jlu93s1z7ma6021/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_6643_001/one",
"dash": "https://cdn.example.com/player/dash/skin1/5jlu93s1z7ma6021/aHR0cHM6Ly9zdHJlYW0uZXhhbXBsZS5jb20vc2FtcGxlL3N0cmVhbS9wbGF5bGlzdC5tM3U4?showcv=true&title=103_push_6643_001/one"
}
},
"tokenized": null
},
"platformsCount": 0,
"ssl_enabled": true,
"hash": "fb9a2ddb20c20ddee56f8ad668a70485.sdp",
"securetoken": {
"enabled": "N",
"policy": "D",
"keyip": "N",
"list": "49ed6e0dd99f5ca6",
"timeout": 3600,
"session": "0",
"ips": "",
"dirs": null,
"active": "N"
},
"preroll": "N",
"loop": "N",
"zone": {
"id": 6643,
"type": "push",
"mode": "http",
"name": "push-6643",
"ftpdetails": {
"username": "vineeth_103_push_6643"
}
},
"hasInstantSchedule": true,
"playlistCount": 6,
"playlists": [
{
"id": 9257,
"streamid": 71979,
"name": "default",
"schedule": "instant",
"scheduletime": 0,
"type": "file",
"repeatfor": 0,
"repeatintervaldays": 0,
"loop": "0",
"length": "00:00:00",
"autorestart": "0",
"videos": [
{
"src": "/mp4/cureforme_720p.mp4",
"start": "0",
"duration": "0",
"ad_breaks": [
{
"start": 67,
"duration": 30
}
]
}
],
"serviceid": 103,
"files": [
"/mp4/cureforme_720p.mp4"
],
"durations": [
[
"0",
"0"
]
],
"ad_breaks": [
[
[
67,
30
],
[
134,
30
]
]
]
}
],
"domainlock": {
"enabled": "Y",
"policy": "Y",
"list": "",
"ips": "",
"noreferer": "Y",
"active": "Y"
},
"geoblock": {
"enabled": "Y",
"policy": "N",
"list": [
"AF"
],
"ips": "",
"active": "Y"
},
"ipaccess": {
"enabled": "N",
"policy": "N",
"list": "",
"ips": "",
"active": "N"
},
"useragent": {
"enabled": "N",
"policy": "N",
"list": "",
"ips": "",
"casesensitive": "N",
"active": "N",
"listArr": [
""
]
},
"transcode": {
"ltc": 5,
"type": "mixed",
"enabled": true,
"isEditable": true,
"id": 71979,
"autostop": 0,
"vprofiles": [
"12345",
"12345",
"12345",
"12345",
"12345"
],
"aprofiles": [
"12345"
],
"filters": [],
"disabled": "0",
"count": 5,
"countRaw": 5,
"codec": "h264",
"isRunning": false,
"profiles": {
"count": {
"total": 5,
"sd": 5
}
}
},
"platforms": [],
"messages": {},
"adInsertion": {
"id": 11,
"relid": 71979,
"type": "stream",
"enabled": "Y",
"policy": "1",
"provider": "Google Ad Manager",
"meta": {
"adserver": {
"url": "https://adserver.example.com/vast.php",
"queryParameters": [
{
"name": "src_url",
"type": "from-variable",
"value": "SOURCE_URL"
}
],
"adOrigin": {},
"name": "5-103-71979-adserver",
"template": "custom",
"id": 209822
},
"adreplacement": {
"token": "4b004a3dd6a7128abb31e13b5289ca8528a0f6e7",
"enabled": "Y",
"scte35": {
"adBreakTriggers": [
"0x22",
"0x30",
"0x32",
"0x34",
"0x36",
"0x38",
"0x3a",
"splice_insert"
],
"markersToRemove": [
"ALL"
]
},
"gapFiller": "",
"maxAdDurationExcess": "0",
"pastAdBreakReplacement": "0",
"pastAdBreakReplacementValue": "",
"onStartWithinAdBreak": "replace"
},
"adpreroll": {
"maxDuration": 30,
"offset": 0
}
},
"defaultDuration": 30,
"created_at": "2026-05-04 16:20:56",
"schedules": [],
"active": "Y"
}
}
}
/streams/scheduledplaylist/{streamid}/transcodeTarget server for requests. Edit to use your own host.
API key (sent in header)
Stream ID
The media type of the request body
Video transcoding profile IDs to apply, from the GET /streams/settings/profiles list. All selected profiles must share the same video codec (h264 or h265) — mixing codecs is rejected. In per-profile billing mode, a maximum of 5 profiles is allowed, further capped by the account's available SD/HD/UHD profile slots; per-minute billing mode has no profile-count limit. Send an empty array for no additional video transcoding.
Audio transcoding profile ID to apply, from the GET /streams/settings/profiles list. Single-select — send at most one profile ID in the array, or an empty array for no audio transcoding.
List of transcoding filter IDs to apply, from the GET /streams/settings/filters list.
ID of the Live Transcoder Core (LTC) tier to allocate for this stream — for example 1 = LT1C @ $0.06/hr, up to 16 = LT16C @ $0.96/hr. The selectable range is further capped by the number of LTC cores currently available on the account; tiers above that count are out of stock and rejected.
Controls when the transcoder automatically stops after the source goes offline. -1 = Always Run (keeps running and is billed hourly until manually stopped); 0 or null = Stop After Event Ends (recommended default — stops at the end of the current event or billing hour); 1-48 = stop that many hours after the source goes offline (custom).
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Path Parameters
Body
Video transcoding profile IDs to apply, from the GET /streams/settings/profiles list. All selected profiles must share the same video codec (h264 or h265) — mixing codecs is rejected. In per-profile billing mode, a maximum of 5 profiles is allowed, further capped by the account's available SD/HD/UHD profile slots; per-minute billing mode has no profile-count limit. Send an empty array for no additional video transcoding.
["12345"]Audio transcoding profile ID to apply, from the GET /streams/settings/profiles list. Single-select — send at most one profile ID in the array, or an empty array for no audio transcoding.
["12345"]List of transcoding filter IDs to apply, from the GET /streams/settings/filters list.
[]ID of the Live Transcoder Core (LTC) tier to allocate for this stream — for example 1 = LT1C @ $0.06/hr, up to 16 = LT16C @ $0.96/hr. The selectable range is further capped by the number of LTC cores currently available on the account; tiers above that count are out of stock and rejected.
5Controls when the transcoder automatically stops after the source goes offline. -1 = Always Run (keeps running and is billed hourly until manually stopped); 0 or null = Stop After Event Ends (recommended default — stops at the end of the current event or billing hour); 1-48 = stop that many hours after the source goes offline (custom).
0Responses
Status of the API response.
Human-readable message describing the result.
Stream object containing configuration and status details.