Text and titles

Fonts and non-Latin scripts

One text clip per script. A display family for the headline, and the bundled fallbacks carrying Arabic and Devanagari without a single font file uploaded.

Shown on Three scripts on a studio gradient

After · rendered from the request below

The entry

Use it as a clip's asset, on a track above the footage.

{
"asset": {
"type": "text",
"text": "Render anything",
"style": {
"font": "Bebas Neue",
"size": 92,
"weight": 400,
"color": "#FFFFFF"
}
}
}

Every setting and default is in the docs

Run it

The whole request behind the render above. Paste it as it is, or swap the file for your own.

job.ts
import { createClient, outputUrl } from "@rendobar/sdk";
const rb = createClient({ apiKey: process.env.RENDOBAR_API_KEY });
const job = await rb.jobs.run({
type: "compose",
params: {
schemaVersion: 1,
output: {
format: "mp4",
resolution: {
width: 960,
height: 540
}
},
timeline: {
tracks: [
{
clips: [
{
asset: {
type: "shape",
shape: "rect",
color: [
"#1B2A26",
"#070D0B"
],
gradient: "radial"
},
start: 0,
length: 6
}
]
},
{
clips: [
{
asset: {
type: "text",
text: "RENDER ANYTHING",
style: {
font: "Bebas Neue",
size: 96,
weight: 400,
color: "#FFFFFF",
shadow: {}
}
},
transform: {
position: {
x: "50%",
y: "30%"
}
},
start: 0,
length: 6
}
]
},
{
clips: [
{
asset: {
type: "text",
text: "رندوبار",
style: {
font: "Inter",
size: 64,
weight: 700,
color: "#9BE7C4"
}
},
transform: {
position: {
x: "50%",
y: "55%"
}
},
start: 0,
length: 6
}
]
},
{
clips: [
{
asset: {
type: "text",
text: "वीडियो",
style: {
font: "Inter",
size: 64,
weight: 700,
color: "#9BE7C4"
}
},
transform: {
position: {
x: "50%",
y: "75%"
}
},
start: 0,
length: 6
}
]
}
]
}
},
});
console.log(outputUrl(job));

Install with npm i @rendobar/sdk. jobs.run() submits and waits, so it returns the finished job in one call.

terminal
curl https://api.rendobar.com/jobs \
-H "Authorization: Bearer $RENDOBAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"compose","params":{"schemaVersion":1,"output":{"format":"mp4","resolution":{"width":960,"height":540}},"timeline":{"tracks":[{"clips":[{"asset":{"type":"shape","shape":"rect","color":["#1B2A26","#070D0B"],"gradient":"radial"},"start":0,"length":6}]},{"clips":[{"asset":{"type":"text","text":"RENDER ANYTHING","style":{"font":"Bebas Neue","size":96,"weight":400,"color":"#FFFFFF","shadow":{}}},"transform":{"position":{"x":"50%","y":"30%"}},"start":0,"length":6}]},{"clips":[{"asset":{"type":"text","text":"رندوبار","style":{"font":"Inter","size":64,"weight":700,"color":"#9BE7C4"}},"transform":{"position":{"x":"50%","y":"55%"}},"start":0,"length":6}]},{"clips":[{"asset":{"type":"text","text":"वीडियो","style":{"font":"Inter","size":64,"weight":700,"color":"#9BE7C4"}},"transform":{"position":{"x":"50%","y":"75%"}},"start":0,"length":6}]}]}}}'

Returns immediately with a job id. Poll GET /jobs/{id} or register a webhook rather than blocking on the request.

Questions

What does the fonts clip do in compose?

One text clip per script. A display family for the headline, and the bundled fallbacks carrying Arabic and Devanagari without a single font file uploaded.

How do I add fonts to a video with an API?

Send a compose job to the Rendobar API with this entry in the timeline: {"asset":{"type":"text","text":"Render anything","style":{"font":"Bebas Neue","size":92,"weight":400,"color":"#FFFFFF"}}}. Use it as a clip's asset, on a track above the footage. The request on this page is complete and renders as shown.

Footage and sound