Skip to content

ilovevideoeditor/sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ilovevideoeditor-sdk

Official Python SDK for iLoveVideoEditor — render videos programmatically with a cloud video API.

iLoveVideoEditor is a cloud video rendering API: submit a JSON scene description (VideoJSON) or a template, queue a render, and download the resulting MP4/WebM. This SDK is the official Python client — it ships a high-level client with polling and progress callbacks on top of a fully typed, auto-generated OpenAPI client covering every API resource.

PyPI version Python versions License: MIT Docs Run in Postman

Features

  • Render videos from JSON — submit a VideoJSON scene description and get back a downloadable MP4/WebM
  • Blocking or queued rendersrender() submits, polls, and returns the finished result; queue_render() + get_render() let you poll on your own schedule
  • Progress callbacks — track render status and percent completion while you wait
  • Fresh download URLs — refresh signed download URLs for completed renders at any time
  • Template support — list public templates and fetch individual template definitions
  • Full API coverage — the bundled low-level client (ilovevideoeditor_sdk) exposes renders, templates, projects, assets, billing, API keys, integrations, renditions, tools, webhooks, and workflows
  • Typed — fully annotated, ships py.typed, pydantic v2 models throughout

Installation

pip install ilovevideoeditor-sdk

or with uv:

uv pip install ilovevideoeditor-sdk

Requires Python 3.10 or newer.

Quick start

from ilovevideoeditor import iLoveVideoEditorClient

client = iLoveVideoEditorClient(api_key="vf_live_xxx")

video_json = {
    "name": "hello-world",
    "layers": [
        {"type": "composition", "width": 1920, "height": 1080, "fps": 30},
    ],
}

# Submit, poll until done, and return the finished render
result = client.render(
    video_json,
    on_progress=lambda status, progress: print(f"{status}{progress}%"),
)

print(result.download_url)

All high-level methods:

  • client.render(video_json, poll_interval=2.0, max_wait=300.0, on_progress=None) → submit + poll + return a RenderResult (job_id, status, progress, url, download_url, error, created_at, completed_at)
  • client.queue_render(video_json) → submit and return {"job_id", "status"} immediately
  • client.get_render(job_id) → current status of a render job as a RenderResult
  • client.refresh_url(job_id) → fresh signed download URL for a completed render
  • client.list_templates() → list public templates
  • client.get_template(template_id) → get a single template

Need the full API surface? Use the generated low-level client directly:

import ilovevideoeditor_sdk
from ilovevideoeditor_sdk.api.render_api import RenderApi

config = ilovevideoeditor_sdk.Configuration(host="https://api.ilovevideoeditor.com")
config.api_key["ApiKeyAuth"] = "vf_live_xxx"

with ilovevideoeditor_sdk.ApiClient(config) as api_client:
    render_api = RenderApi(api_client)
    # e.g. render_api.estimate_render_cost(...)

Authentication

Create an API key in the iLoveVideoEditor dashboard — keys are prefixed with vf_live_. Pass it as api_key when constructing the client; the recommended practice is to keep it in an environment variable rather than hardcoding it:

import os
from ilovevideoeditor import iLoveVideoEditorClient

client = iLoveVideoEditorClient(api_key=os.environ["ILOVEVIDEOEDITOR_API_KEY"])

Documentation

Other official SDKs

License

MIT

About

Official Python SDK for iLoveVideoEditor — render videos programmatically via a cloud video API

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages