Built for developers

One POST request.
One MP4.
No FFmpeg.

Your PM wants "video features" in the app. You don't want to touch FFmpeg. We get it. Send JSON, get back a video. That's it.

typescript
1import { iLoveVideoEditor } from '@ilovevideoeditor/sdk-node';
2
3const client = new iLoveVideoEditor({
4 apiKey: 'YOUR_API_KEY',
5});
6
7const job = await client.render.create({
8 videoJson: {
9 duration: 5,
10 fps: 30,
11 width: 1920,
12 height: 1080,
13 layers: [
14 {
15 type: 'video',
16 src: 'input.mp4',
17 start: 0,
18 duration: 5,
19 },
20 {
21 type: 'text',
22 text: 'Hello World',
23 fontSize: 72,
24 color: '#ffffff',
25 position: { x: 960, y: 540 },
26 },
27 ],
28 },
29});
30
31console.log('Render job:', job.id);

FFmpeg vs iLoveVideoEditor API

Spoiler: one requires a DevOps team, the other requires 5 minutes

FFmpeg Pipeline
iLoveVideoEditor API
Setup time
2 days
5 minutes
Lines of code
~500
~20
Render speed
3x realtime
1x realtime
Monthly cost
$200+ server
$0 - 50 credits
Maintenance
High
None

Pick your renderer

Same API, three different execution environments

Browser

Client-side rendering with WebCodecs. Instant preview, zero server cost.

Real-time preview
Free

Server

Headless Chromium via Playwright. Highest quality, full effects support.

1-3 min render time
Best quality
Recommended

Edge

Cloudflare Workers. Webhook-triggered renders. Scale to infinity.

30s - 2min
Auto-scaling

Don't use our SDK? No problem.

Raw HTTP works too. Here's a complete request in curl.

bash
1curl -X POST https://api.ilovevideoeditor.com/v1/render \
2 -H "Authorization: Bearer YOUR_API_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "videoJson": {
6 "duration": 3,
7 "width": 1920,
8 "height": 1080,
9 "layers": [
10 {
11 "type": "solid",
12 "color": "#e5352c",
13 "duration": 3
14 }
15 ]
16 }
17 }'
20
lines of code to first render
42
built-in GLSL effects
0
infrastructure to manage

Ship video features this week

Your PM will think you're a wizard. Your infrastructure team will thank you.