Render HTML
into vertical video

Send a self-contained HTML template, get back a pixel-perfect mp4 reel. One API call — deterministic frame-by-frame Chromium renders muxed with ffmpeg. Built for Reels, Shorts, TikTok, and programmatic video.

$ curl https://api.html2reel.com/v1/reels \
  -H "X-API-Key: h2r_..." \
  -d '{"html": "<...>", "duration_seconds": 15, "width": 1080, "height": 1920, "fps": 30}'

{
  "job_id": "abc-123",
  "status": "queued"
}

What you get

Deterministic frame-by-frame render

Web Animations and timelines seeked per frame in headless Chromium — same input, byte-identical output. No realtime capture, no dropped frames.

mp4 out, h264 + AAC

ffmpeg muxes the frames with optional audio into a clean mp4. Plays out-of-the-box on Reels, Shorts, TikTok, iOS, Android.

Any aspect ratio

1080×1920 vertical, 1920×1080 horizontal, 1080×1080 square — declared per request alongside fps and duration.

Background audio with auto fade-out

Drop an audio_url alongside the html and the muxer pads, fades, and trims it cleanly to the reel's length. No abrupt cuts.

Sync poll or webhook

Poll the job and honour Retry-After, or pass a callback URL — works for one-off renders and high-volume batches alike.

R2-backed output

Rendered mp4s land on Cloudflare R2 and serve from a fast URL — no blobs sitting in your job rows.

See it in action

Same API, three flavors. Pick your stack.

# Submit a reel render
curl -X POST https://api.html2reel.com/v1/reels \
  -H "X-API-Key: h2r_..." \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<!doctype html><html>...</html>",
    "duration_seconds": 15,
    "width": 1080,
    "height": 1920,
    "fps": 30,
    "audio_url": "https://cdn.example.com/track.mp3"
  }'

# Response
{"job_id":"abc-123","status":"queued"}

# Poll until done — "url" is the rendered mp4
curl https://api.html2reel.com/v1/reels/abc-123 \
  -H "X-API-Key: h2r_..."

html2reel is part of the 2LLM Suite — focused APIs that take messy inputs and produce clean, usable outputs. Also try scrape2llm and files2llm and html2media for the rest.

Render your first reel in under a minute.

Get your API key →