AI Video Upscaling
Upscale video to 4K/8K using Real-ESRGAN with a single API flag.
Turn any video into stunning 4K or 8K with a single API flag. Rad TV's AI upscaling intelligently enhances each frame to deliver sharper, more detailed output — perfect for creators who want professional-quality results from lower-resolution source material.
AI upscaling requires an active Creator+ subscription ($29.99/month). Upscaling is unlimited for Creator+ subscribers.
How It Works
- You submit a video with
enhance: true - The Rad Encoder processes each frame through an AI upscaling pipeline
- Resolution is enhanced up to 4K/8K depending on source quality
- The enhanced video is output alongside standard formats (HLS streaming, MP4 download, thumbnails)
The enhance flag triggers both video upscaling and audio upmixing (stereo to surround sound) together.
Using publishVideo
The simplest way — set enhance: true in your PublishVideoInput:
curl -X POST https://api.rad.live/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "mutation($input: PublishVideoInput!) { publishVideo(input: $input) { content { id } job { id status } } }",
"variables": {
"input": {
"title": "Upscaled Nature Documentary",
"sourceUrl": "https://example.com/nature-720p.mp4",
"contentType": "landscape",
"enhance": true,
"publish": true
}
}
}'const response = await fetch('https://api.rad.live/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
query: `
mutation($input: PublishVideoInput!) {
publishVideo(input: $input) {
content { id }
job { id status }
}
}
`,
variables: {
input: {
title: 'Upscaled Nature Documentary',
sourceUrl: 'https://example.com/nature-720p.mp4',
contentType: 'landscape',
enhance: true,
publish: true,
},
},
}),
});
const { data } = await response.json();
console.log(data.publishVideo.job.status); // QUEUEDimport requests
response = requests.post(
"https://api.rad.live/graphql",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"query": """
mutation($input: PublishVideoInput!) {
publishVideo(input: $input) {
content { id }
job { id status }
}
}
""",
"variables": {
"input": {
"title": "Upscaled Nature Documentary",
"sourceUrl": "https://example.com/nature-720p.mp4",
"contentType": "landscape",
"enhance": True,
"publish": True,
}
},
},
)
result = response.json()["data"]["publishVideo"]
print(result["job"]["status"]) # QUEUEDUsing submitContentForProcessing
If you're using the step-by-step workflow, set enhance: true on the processing input:
mutation {
submitContentForProcessing(
id: "did:rad.live:content/feature/123"
input: {
assetName: "nature-720p.mp4"
layout: LANDSCAPE
enhance: true
}
) {
job { id status progress }
}
}Standard vs Enhanced
| Setting | Processing | What You Get |
|---|---|---|
enhance: false | Standard transcoding | HLS stream, MP4 download, thumbnails |
enhance: true | AI-enhanced (Creator+) | All standard outputs + upscaled resolution + surround audio |
Creator+ subscribers also get higher-quality standard transcoding even with enhance: false.
Checking Upscaled Output
After processing completes, query the enhanced output:
{
me {
channel {
features(first: 1) {
edges {
node {
metadata { title }
outputAssets {
encoderType
video { hls download preview }
images { thumbnails { urlFormat count } }
}
}
}
}
}
}
}The encoderType field tells you which encoder was used — RAD_ENCODER for enhanced content, MEDIA_CONVERT for standard.
Next steps
- Audio Upmixing — Learn about the surround sound enhancement that runs alongside upscaling
- Output Assets — Understand all the files generated after transcoding
- Publish to Rad — Full publishing workflow reference