Official PHP SDK for the iLoveVideoEditor cloud video rendering API — render MP4/WebM videos programmatically from JSON scene descriptions and templates
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2026-07-14 16:45:34 UTC
README
Official PHP SDK for iLoveVideoEditor — render videos programmatically with a cloud video API.
iLoveVideoEditor is a cloud video rendering API: submit a JSON scene description or template, queue a render, and download the resulting MP4/WebM. This package is the official PHP client, combining a friendly high-level wrapper (queue + poll + download URL in one call) with a fully generated API client covering every endpoint.
- API reference: OpenAPI spec · Postman collection
Features
- One-call rendering — submit a VideoJSON scene description with
render()and block until the MP4/WebM is ready - Progress callbacks —
onProgress($status, $percent)plus configurablepollIntervalandmaxWait - Render management — check job status with
getRender()and refresh expiring download URLs withrefreshUrl() - Templates — list and fetch templates with
listTemplates()/getTemplate(), or render them via the generatedTemplatesApi::renderTemplate() - Full API coverage — a generated client (
iLoveVideoEditorSDK\Api\*) for renders, templates, assets, projects, webhooks, workflows, API keys, billing, tools, renditions, integrations, and health — including render cancellation and cost estimation - PHP 8.1+ with strict types, readonly result objects, and Guzzle 7 under the hood
Installation
composer require ilovevideoeditor/sdk
Requires PHP >= 8.1 with the curl, json, and mbstring extensions.
Quick start
<?php require_once 'vendor/autoload.php'; use iLoveVideoEditor\SDK\iLoveVideoEditorClient; $client = new iLoveVideoEditorClient([ 'apiKey' => getenv('ILOVEVIDEOEDITOR_API_KEY'), ]); $result = $client->render([ 'name' => 'hello-world', 'layers' => [ ['type' => 'composition', 'width' => 1920, 'height' => 1080, 'fps' => 30], ], ], [ 'onProgress' => fn(string $status, float $progress) => printf("%s — %.0f%%\n", $status, $progress), ]); echo $result->downloadUrl, PHP_EOL;
render() queues the job, polls until it completes, and returns a RenderResult with jobId, status, progress, url, downloadUrl, error, createdAt, and completedAt.
Authentication
Create an API key in your iLoveVideoEditor dashboard. Keys are prefixed with vf_live_ and are sent as the x-api-key header. Keep the key out of source control — read it from an environment variable:
$client = new iLoveVideoEditorClient([ 'apiKey' => getenv('ILOVEVIDEOEDITOR_API_KEY'), ]);
Documentation
- Docs: https://ilovevideoeditor.com/docs
- SDK guides: https://ilovevideoeditor.com/docs/sdks
- Packagist: https://packagist.org/packages/ilovevideoeditor/sdk
Other official SDKs
- Node.js / TypeScript: https://www.npmjs.com/package/@ilovevideoeditor/sdk-node (repo: https://github.com/ilovevideoeditor/sdk-node)
- Python: https://pypi.org/project/ilovevideoeditor-sdk/ (repo: https://github.com/ilovevideoeditor/sdk-python)
- Ruby: https://rubygems.org/gems/ilovevideoeditor-sdk (repo: https://github.com/ilovevideoeditor/sdk-ruby)
- Go: https://pkg.go.dev/github.com/ilovevideoeditor/sdk-go (repo: https://github.com/ilovevideoeditor/sdk-go)
License
MIT — see LICENSE.