Tutorial · Python · ~10 min

Batch Interpolate a Video Library

A whole library to 60fps — queue, stage, and let the jobs run.

PythonBatchAPI

Why this matters

Motion-graphics and game catalogs increasingly ship 60fps masters; retrofitting the library is a queue problem, not a one-off encode.

Per-file jobs isolate failures and make progress visible per title.

How it works

Submit the folder with your factor; each file is interpolated independently with per-file status and output URL.

Submit a job with an input URL (S3, GCS or HTTPS), poll the job URL, and download the rendered output. No GPU, no queues, no ffmpeg builds to babysit.

Code

Python
import requests, time

API = "https://api.mlslabs.io/v1/frame-interpolation/jobs"
headers = {"X-API-Key": "YOUR_API_KEY"}
payload = {"input": "s3://bucket/library/", "factor": 2, "pattern": "*.mp4"}

resp = requests.post(API, json=payload, headers=headers)
job = resp.json()
while job["status"] not in ("succeeded", "failed"):
    time.sleep(3)
    job = requests.get(job["url"], headers=headers).json()

print("Output:", job["output_url"])

Pro tips

  • Stage by content type: motion graphics first, live-action later.
  • Keep originals — interpolation is a new deliverable, not a replacement.
  • Verify a sample from each batch with the frame-stability report.

Pricing note

Usage is metered per minute of media processed; the first tier is free each month. Volume discounts kick in automatically.

FAQ

Common questions

What reports come back?

Per-file status, output URL, and processing time; failures include reasons.

How does pricing work for batches?

Per output minute of interpolated video across all files.

Can I prioritize?

Yes — individual jobs accept a higher priority flag.