Video Restorer API

by PopNow

Fix compression blocks or out-of-focus footage, same length and sound

popnow/video-restorer-v1/video-edit
  • Up to 1080p
  • Video Restorer

About Video Restorer

Fix compression blocks or out-of-focus footage, same length and sound.

Call it with the model name popnow/video-restorer-v1/video-edit on POST /jobs/createTask, from $0.024.

Introduction

Video Restorer cleans up damaged footage without changing what happens in it. Choose decompress for clips that were squeezed by low bitrates and repeated re-uploads, or deblur for clips where the lens missed focus. Subjects, framing and motion stay where they were.

Request

{
 "video_url": "https://example.com/clip.mp4",
 "restore_mode": "decompress",
 "resolution": "720p",
 "prompt": "a woman with curly hair in a greenhouse full of orchids"
}

Only video_url is required. restore_mode defaults to decompress and resolution to 720p. The aspect ratio is preserved and the output is never larger than the source, so a 480p clip comes back at 480p even if you ask for more.

What we saw in testing

We compressed a 4-second 854×480 greenhouse clip to 116 kbps, enough to turn the woman's face into blocks. In decompress mode at 480p it came back after about 55 seconds with her face, curls and the orchids clean, still 4 seconds at 24 fps with the stereo audio. A 4-second wine-cellar clip blurred to imitate missed focus came back in deblur mode after about 72 seconds with sharp faces and barrels.

Tips

  • deblur is for focus blur. Motion blur and shaky footage are outside what it fixes.
  • To make a repaired clip bigger, send it to Video Upscaler (/api/video-upscaler-v1) afterwards.

Request parameters

ParameterRequiredDescription
promptNoDescribe what you want to make.
resolutionNoChoose an available output size. 480p · 720p · 1080p · Default: 720p
restore_modeNodecompress removes the blocks, banding and smearing of heavy compression; deblur brings out-of-focus footage back into focus (not motion blur). Length, framing and sound stay the same. decompress · deblur · Default: decompress
seedNoUse the same seed and settings for more controlled comparisons. ≥ 0 · ≤ 2147483647
video_urlYesThe clip to work on.

Pricing

Prices are in USD. The API uses a separate USD balance. Website credits cannot be used or transferred to it, and API funds cannot be transferred to website credits. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

OptionUSD per second
resolution 480p$0.024
resolution 720p$0.048
resolution 1080p$0.12

Send the same request body to POST /jobs/quote to see the estimated and maximum USD charge before running. A quote does not run the task or charge your balance.

API quick start

Call the Video Restorer API in three steps

  1. Create an API key. Sign in to PopNow and create a key in the API console. Keys start with sk-popnow-. API calls use your separate USD balance.
  2. Send the request. POST /jobs/createTask with model popnow/video-restorer-v1/video-edit and an input object that follows the parameter table. The response returns a task ID straight away.
  3. Get the result. Poll GET /jobs/recordInfo with the task ID, or pass a callBackUrl and we post the result to it. Download the output links when the task succeeds.
# 1. Create the task. Keep the Idempotency-Key if you retry after a network error.
export IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST https://api.popnow.ai/api/v1/jobs/createTask \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -d '{
  "model": "popnow/video-restorer-v1/video-edit",
  "input": {
    "video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
    "restore_mode": "decompress",
    "resolution": "720p"
  }
}'

# 2. Copy data.taskId from the response, then poll until state is succeeded, failed, canceled or expired.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Replace the prompt and any links with your own. The API tab has the response, polling and callback reference.

Video Restorer API questions

How much does the Video Restorer API cost?

Video Restorer costs $0.024 per second. Prices by option: 480p $0.024 per second, 720p $0.048 per second, 1080p $0.12 per second. The API uses a separate USD balance. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

What is the model name for Video Restorer in the API?

Put popnow/video-restorer-v1/video-edit for Video Restorer in the model field of POST /jobs/createTask.

How is this different from Video Upscaler?

Video Upscaler (/models/video-upscaler-v1) makes a clean clip bigger, up to 4K. Video Restorer repairs damage, either compression blocks or soft focus, and never makes the frame larger than the source. For a damaged low-resolution clip, restore first and upscale second.

Does it change the people or the motion?

Framing and motion stay the same. On heavily compressed faces, detail is rebuilt from very little information: in our decompress test the woman's face came back sharp and natural, but fine features are a reconstruction, so check close-ups.

Is the sound kept?

Yes. Our restored clips kept their stereo audio track, their length and their 24 fps frame rate.

How is it billed?

Per second of the source clip at the resolution you select, rounded up, with a 3-second minimum. Clips must be 120 seconds or shorter.

What are the limits of the Video Restorer API?

Resolutions: 480p · 720p · 1080p; Prompt length (characters): 1,000; Longest input clip: 120 s. Requests outside these limits are rejected before anything is charged.

Can I try Video Restorer without writing code?

Run Video Restorer in the Playground with your API USD balance, without an API key. Each run appears in your developer history with its matching code.

More about Video Restorer