Workflows

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

  1. You submit a video with enhance: true
  2. The Rad Encoder processes each frame through an AI upscaling pipeline
  3. Resolution is enhanced up to 4K/8K depending on source quality
  4. 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); // QUEUED
import 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"])  # QUEUED

Using 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

SettingProcessingWhat You Get
enhance: falseStandard transcodingHLS stream, MP4 download, thumbnails
enhance: trueAI-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

On this page