Voor ontwikkelaars en SaaS
Voeg AI-video toe aan je product in een paar aanroepen
Een REST API, een MCP-server en webhooks: je product maakt uitlegvideo's en knipt lange video's in shorts, zonder dat je gebruikers ClipOnIt hoeven te openen.
Vanaf het gratis plan (3 video's per maand met watermerk) · de sleutel maak je aan via Instellingen → Integraties
Twee manieren om het te gebruiken
De twee producten van ClipOnIt, aangeroepen vanuit je code of door een agent.
AI Explainer
Een opleidingstool: een uitlegvideo per les
Je product stuurt de titel of de tekst van de les; ClipOnIt schrijft de scènes, illustreert ze, voegt de stem en ondertitels toe en rendert een verticale MP4 die je naast de cursus toont.
POST /api/agent/produceMCP
Een AI-agent die ClipOnIt bestuurt
Je agent (Claude, Cursor, VS Code of je eigen) koppelt aan de MCP-server: hij importeert een video, kiest de clips, start een uitlegvideo en wacht op het resultaat met tools die al beschreven zijn.
POST /mcp
Altijd dezelfde flow
Een video duurt minuten, geen milliseconden: je maakt een taak aan, volgt de status en haalt het bestand op.
- Taak aanmaken
Een POST met het onderwerp of de link van de video. Direct antwoord met een ID.
- Status volgen
Ongeveer elke 10 s een GET: stap, percentage, resterende tijd. Voor de Explainer kan een webhook je in plaats daarvan waarschuwen.
- Haal de video op
Zodra het klaar is, staat de URL van de MP4 in het antwoord. Download hem of toon hem in je product.
AI Explainer
Een uitlegvideo op basis van een onderwerp
POST /api/agent/produce ontvangt een onderwerp (of een script, of een audio-opname) en start het schrijven en daarna het renderen. GET /api/jobs/{id} geeft status, step, percent en daarna url terug zodra de video klaar is.
- duration_s15 tot 180 seconden
- style24 visuele stijlen, en de jouwe: GET /api/explainer/styles
- voiceeen stem uit de catalogus, op naam of ID
- dry_runtrue: controleert quota en kosten zonder iets te starten
curl -s -X POST https://cliponit.app/api/agent/produce \
-H "Authorization: Bearer $CLIPONIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"topic": "La photosynthèse en 3 étapes", "duration_s": 45}'
curl -s https://cliponit.app/api/jobs/JOB_ID \
-H "Authorization: Bearer $CLIPONIT_API_KEY"
curl -s -o lecon.mp4 "URL_DU_JOB"const API = "https://cliponit.app";
const headers = {
Authorization: `Bearer ${process.env.CLIPONIT_API_KEY}`,
"Content-Type": "application/json",
};
async function call(method, path, body) {
const res = await fetch(API + path, { method, headers, body: body && JSON.stringify(body) });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
return res.json();
}
let { job } = await call("POST", "/api/agent/produce", { topic: "La photosynthèse en 3 étapes", duration_s: 45 });
while (!["done", "failed", "canceled"].includes(job.status)) {
await new Promise((r) => setTimeout(r, 10_000));
job = await call("GET", `/api/jobs/${job.id}`);
}
console.log(job.status === "done" ? job.url : job.error);import json, os, time, urllib.request
API = "https://cliponit.app"
KEY = os.environ["CLIPONIT_API_KEY"]
def call(method, path, body=None):
req = urllib.request.Request(API + path, method=method,
data=None if body is None else json.dumps(body).encode(),
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
return json.load(r)
job = call("POST", "/api/agent/produce", {"topic": "La photosynthèse en 3 étapes", "duration_s": 45})["job"]
while job["status"] not in ("done", "failed", "canceled"):
time.sleep(10)
job = call("GET", f"/api/jobs/{job['id']}")
if job["status"] == "done":
urllib.request.urlretrieve(job["url"], "lecon.mp4")
else:
print(job["error"])MCP
Een MCP-server voor agents
Uniek adres https://cliponit.app/mcp, via HTTP „streamable”. De tools dekken beide producten: importeren, wachten, clips maken en exporteren, een uitlegvideo maken en wachten tot die klaar is. Acties die iets wijzigen zijn gemarkeerd, zodat de agent eerst vraagt.
Claude Desktop en Claude.ai: Instellingen → Connectors → Aangepaste connector toevoegen, met het adres hierboven. Verbinden gebeurt via OAuth, zonder sleutel om te kopiëren; ChatGPT werkt op dezelfde manier. Stap voor stap
claude mcp add --transport http cliponit https://cliponit.app/mcp \
--header "Authorization: Bearer $CLIPONIT_API_KEY"{
"mcpServers": {
"cliponit": {
"url": "https://cliponit.app/mcp",
"headers": { "Authorization": "Bearer ${env:CLIPONIT_API_KEY}" }
}
}
}{
"inputs": [
{ "type": "promptString", "id": "cliponit-key", "description": "ClipOnIt API key", "password": true }
],
"servers": {
"cliponit": {
"type": "http",
"url": "https://cliponit.app/mcp",
"headers": { "Authorization": "Bearer ${input:cliponit-key}" }
}
}
}curl -s -X POST https://cliponit.app/mcp \
-H "Authorization: Bearer $CLIPONIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_quota", "arguments": {}}}'Gewaarschuwd worden in plaats van vragen
Voeg in Instellingen → Integraties tot 3 https-URL's toe. Wanneer een Explainer-productie eindigt, stuurt ClipOnIt daarheen job.done of job.failed, met hetzelfde object als GET /api/jobs/{id}. Zes pogingen bij mislukking, over ongeveer 8 uur.
Voor Smart Clipper-clips is er nog geen webhook: volg de status via GET.
import hashlib, hmac, time
def verify(secret: str, header: str, body: bytes, tolerance: int = 300) -> bool:
"""header = X-ClipOnIt-Signature, body = raw request bytes."""
parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
if abs(time.time() - int(parts.get("t", 0))) > tolerance:
return False
mac = hmac.new(secret.encode(), parts["t"].encode() + b"." + body, hashlib.sha256).hexdigest()
return hmac.compare_digest(mac, parts.get("v1", ""))Limieten en quota per abonnement
API-aanroepen tellen mee zoals in de interface: dezelfde quota, hetzelfde account. Bekijk de prijzen
| Gratis | Starter | Pro | Business | |
|---|---|---|---|---|
| API en MCP | — | ✓ | ✓ | ✓ |
| Explainer-video's per maand | — | 15 | 30 | 100 |
| Explainer-producties tegelijk | — | 2 | 2 | 2 |
| API-sleutels per account | — | 10 | 10 | 10 |
| Webhooks per account | — | 3 | 3 | 3 |
Beveiliging
Roep ClipOnIt aan vanaf je server, nooit vanuit de browser van je gebruikers.
Privacybeleid- De sleutel blijft op je server.Ze geeft toegang tot het volledige ClipOnIt-account: nooit in de browser, een mobiele app of een Git-repository. Bewaar haar in een omgevingsvariabele en roep ClipOnIt aan vanuit je backend.
- Eén sleutel per gebruik, met zijn bereik.Bereik „lezen” (raadplegen, controleren) of „productie” (video's maken). Elke sleutel heeft een naam en een datum van laatste gebruik, en wordt met één klik ingetrokken: die reageert 401 vanaf de volgende aanroep.
- Het geheim wordt maar één keer getoond.ClipOnIt bewaart alleen de vingerafdruk (SHA-256). Is die verloren, dan vervang je de sleutel; je kunt hem niet opnieuw bekijken.
- Ondertekende webhooks.Elke verzending bevat X-ClipOnIt-Signature (HMAC-SHA256 van de body en het tijdstempel); verzendingen ouder dan 5 minuten worden geweigerd. Ontvangst-URL's zijn https en worden bij elke verzending gecontroleerd.
- Gehost in de Europese Unie.Hetzner-servers in de EU; onderaannemers vermeld in het privacybeleid.
Veelgestelde vragen
SDK, widget, vertragingen, quota en volume.
Welk abonnement heb je nodig voor de API?
Het gratis plan volstaat om te beginnen: de sleutel wordt aangemaakt en de MCP-server antwoordt, voor 3 Explainer-video's per maand met watermerk, in de 8 gratis stijlen. De betaalde plannen voegen meer video's toe (15, 30 of 100 per maand), zonder watermerk, de 24 stijlen, je stem via de microfoon en de AI-regisseur. De quota van de API zijn die van het account, net als in de interface.
Is er een SDK?
Er is voorlopig geen officiële SDK. De API werkt via HTTP en JSON, beschreven in OpenAPI 3.1 (/openapi.json): de voorbeelden op deze pagina passen in een paar regels fetch of standaard Python, en je kunt een client genereren uit het OpenAPI-bestand.
Kan ik een ClipOnIt-speler of -editor in mijn site inbedden?
Nee, er is geen insluitbare widget. Je haalt het MP4-bestand op en toont het in je eigen speler, of je hostt het zelf.
Hoelang duurt het maken van een video?
Een uitlegvideo: enkele minuten (schrijven en dan renderen, ongeveer 4 min voor het renderen). Clips: ongeveer 1 tot 5 minuten voor 20 minuten video, daarna het exporteren van elke clip. De API geeft de stap, het percentage en een schatting van de resterende tijd terug.
Wat gebeurt er als een quota bereikt is?
De API antwoordt 402 met een duidelijk bericht (maandquota of AI-budget), 403 als de functie niet in het abonnement zit, 429 als er al twee Explainer-producties lopen. Voor de Explainer betekent „dry_run”: true dat alles wordt gecontroleerd vóór het starten, zonder iets aan te maken of te factureren.
Je wilt ClipOnIt aansluiten voor al je gebruikers.
Une clé agit sur un seul compte ClipOnIt : les vidéos et les quotas sont ceux de ce compte. Pour un usage à plus grande échelle, écris-nous à contact@cliponit.app avec ton volume et ton cas d'usage.
Je eerste video via de API, vandaag nog
Crée une clé, copie un exemple, lance-le. Une question sur ton intégration : contact@cliponit.app.