Video sharpening API
Soft video lacks punch. Out-of-focus footage, compressed uploads, and over-processed exports all lose edge definition. BetterVideo's API applies AI sharpening that recovers detail without the halos and ringing of traditional unsharp masking.
Free sandbox key, no card. Never trained on. Never sold. Auto-deleted.
Why video looks soft
Softness creeps in at multiple stages:
- Focus issues: Slight misfocus or shallow depth of field
- Compression: H.264/H.265 encoding smooths fine detail, especially at low bitrates
- Resampling: Scaling or format conversion can soften edges
- Lens quality: Consumer cameras produce softer images than pro glass
The result: video that looks 'okay' but lacks the crispness that reads as professional.
AI sharpening vs. traditional methods
Traditional unsharp masking (USM) works by detecting edges and increasing local contrast. But it's blunt: apply too little and nothing changes; apply too much and you get halos and ringing.
BetterVideo uses AI super-resolution (Real-ESRGAN) as sharpening. Rather than just boosting edges, it reconstructs detail that was lost — adding back texture and definition that USM can't create. The result is sharper video without the artifacts.
Where sharpening matters
- Face clarity: Sharp faces are easier to identify and more engaging on screen
- Text legibility: License plates, signage, screen captures
- Product video: Detail matters for e-commerce and marketing
- Remastering: Sharpen old footage for modern display
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
AI super-resolution reconstructs detail rather than boosting edges, so you don't get the halos traditional USM creates.
It improves overall sharpness, but severe motion blur is a different problem — the detail was never captured.
Slight softness improves significantly. Severe out-of-focus footage has limits.
Yes — license plates, signage, and screen captures sharpen well.
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.