AI video restoration API
Old video degrades: tape noise, compression artifacts, soft focus, faded colors, and faces that have lost definition. BetterVideo's restoration API applies AI models to recover clarity, detail, and sharpness — frame by frame, in a single call.
Free sandbox key, no card. Never trained on. Never sold. Auto-deleted.
What makes old video look old
Video degradation comes from multiple sources, often compounding:
- Analog noise: Tape hiss, tracking errors, color bleed from VHS/8mm/Beta
- Compression artifacts: Blocky macroblocks from early digital codecs
- Resolution loss: Upscaling SD to HD stretches pixels without adding detail
- Face softness: Faces lose definition, making identification harder
- Color degradation: Faded, shifted, or desaturated color
Restoration addresses these systematically rather than hoping a single filter fixes everything.
How the API restores video
BetterVideo's restoration pipeline combines multiple AI techniques:
- Real-ESRGAN super-resolution: Reconstruct detail at higher resolution, not just interpolate pixels
- GFPGAN face restoration: Restore facial detail specifically, preserving identity
- Adaptive denoising: Reduce grain and compression artifacts without over-smoothing
- Contrast enhancement: Recover dynamic range from flat, faded footage
One call runs the full pipeline — output is H.264 MP4, ready to use.
Who uses video restoration APIs
- Archives and libraries: Digitize and enhance historical video collections
- Studios and broadcasters: Restore catalog content for streaming release
- Family history platforms: Enhance user-uploaded home movies
- Legal and investigations: Clarify old evidence video
One API call — curl, Python & Node
Submit a video by URL, then poll GET /v1/jobs/{id} until done (or receive a signed webhook), and fetch a time-limited download link:
curl -X POST https://api.bettervideo.io/v1/jobs \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"video_url":"https://.../clip.mp4","resolution":"1080p"}'
Python
import requests
r = requests.post("https://api.bettervideo.io/v1/jobs",
headers={"Authorization": "Bearer YOUR_KEY"},
json={"video_url": "https://.../clip.mp4", "resolution": "1080p"})
job = r.json() # poll GET /v1/jobs/{job['id']} until status == "done"
Node.js
const res = await fetch("https://api.bettervideo.io/v1/jobs", {
method: "POST",
headers: { "Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ video_url: "https://.../clip.mp4", resolution: "1080p" })
});
const job = await res.json();
Privacy is the default, not an upgrade
- Never trained on. Pre-trained, fixed-weight models — your frames are enhanced and returned, never used to train AI.
- Never sold or shared. No third parties, no data brokers, no "anonymized" resale.
- Auto-deleted. Files self-delete (default 30 days), or delete any job instantly with one call.
- Proof on the Secure tier. Every deletion can return a signed deletion certificate, with a full audit log.
Frequently Asked Questions
We've processed VHS from the 1980s, 8mm home movies, and early digital video. Quality varies but most footage improves noticeably.
The pipeline is optimized for progressive video. Deinterlace first for best results.
It improves contrast and saturation but doesn't colorize black-and-white footage.
H.264 MP4 at the resolution you specify (1080p or 4K).
Start free — get your API key
Free sandbox key (no card). Try the entire submit → enhance → download flow in a minute with the Run-in-Postman collection.