Til udviklere og SaaS
Tilføj AI-video til dit produkt med få API-kald
Et REST API, en MCP-server og webhooks: dit produkt opretter forklarende videoer og klipper lange videoer ned til shorts, uden at dine brugere skal åbne ClipOnIt.
Fra det gratis abonnement (3 videoer om måneden med vandmærke) · nøglen oprettes under Indstillinger → Integrationer
To måder at bruge det på
De to ClipOnIt-produkter, kaldt fra din kode eller af en agent.
AI Explainer
Et undervisningsværktøj: en forklarende video pr. lektion
Dit produkt sender titlen eller teksten på lektionen; ClipOnIt skriver scenerne, illustrerer dem, tilføjer stemme og undertekster og renderer en lodret MP4, som du viser ved siden af kurset.
POST /api/agent/produceMCP
En AI-agent, der styrer ClipOnIt
Din agent (Claude, Cursor, VS Code eller din egen) kobles til MCP-serveren: den importerer en video, vælger klip, starter en forklaringsvideo og venter på resultatet med værktøjer, der allerede er beskrevet.
POST /mcp
Altid det samme flow
En video tager minutter, ikke millisekunder: du opretter en opgave, følger dens status og henter filen.
- Opret opgaven
Et POST med emnet eller videolinket. Svar med det samme med et ID.
- Følg status
Et GET ca. hver 10 s: trin, procent, resterende tid. Til Explainer kan en webhook i stedet give dig besked.
- Hent videoen
Når den er færdig, findes MP4-URL'en i svaret. Download den eller vis den i dit produkt.
AI Explainer
En forklaringsvideo ud fra et emne
POST /api/agent/produce modtager et emne (eller et script, eller en lydoptagelse) og starter skrivningen og derefter renderingen. GET /api/jobs/{id} returnerer status, step, percent og derefter url, når videoen er klar.
- duration_s15 til 180 sekunder
- stil24 visuelle stilarter, og din egen: GET /api/explainer/styles
- voiceen stemme fra kataloget, efter navn eller id
- dry_runtrue: tjekker kvoten og omkostningen uden at starte noget
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
En MCP-server til agenter
Enkelt adresse https://cliponit.app/mcp, over HTTP »streamable«. Værktøjerne dækker begge produkter: importere, afvente, oprette og eksportere klip, producere en forklaringsvideo og afvente dens afslutning. De værktøjer, der ændrer noget, er markeret, så agenten spørger først.
Claude Desktop og Claude.ai: Indstillinger → Konnektorer → Tilføj en brugerdefineret konnektor med adressen ovenfor. Forbindelsen oprettes via OAuth, uden nøgle at kopiere; ChatGPT fungerer på samme måde. Trin for trin
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": {}}}'Bliv underrettet i stedet for at spørge
Under Indstillinger → Integrationer tilføjer du op til 3 https-URL'er. Når en Explainer-produktion er færdig, sender ClipOnIt job.done eller job.failed dertil, med det samme objekt som GET /api/jobs/{id}. Seks forsøg ved fejl, over ca. 8 timer.
For Smart Clipper-klip findes der endnu ingen webhook: følg status med 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", ""))Grænser og kvoter pr. abonnement
API-kald tæller som i grænsefladen: samme kvoter, samme konto. Se priserne
| Gratis | Starter | Pro | Business | |
|---|---|---|---|---|
| API og MCP | — | ✓ | ✓ | ✓ |
| Explainer-videoer om måneden | — | 15 | 30 | 100 |
| Samtidige Explainer-produktioner | — | 2 | 2 | 2 |
| API-nøgler pr. konto | — | 10 | 10 | 10 |
| Webhooks pr. konto | — | 3 | 3 | 3 |
- Nøglen forbliver på din server.Den giver adgang til hele ClipOnIt-kontoen: aldrig i browseren, en mobilapp eller et Git-repo. Gem den i en miljøvariabel og kald ClipOnIt fra din backend.
- En nøgle pr. brug, med sit omfang.Omfang »læsning« (se, kontrollér) eller »produktion« (opret videoer). Hver nøgle har et navn og en dato for sidste brug, og den kan tilbagekaldes med ét klik: den svarer 401 fra næste kald.
- Hemmeligheden vises kun én gang.ClipOnIt gemmer kun fingeraftrykket (SHA-256). Hvis den går tabt, udskiftes nøglen; den kan ikke genfindes.
- Signerede webhooks.Hver afsendelse bærer X-ClipOnIt-Signature (HMAC-SHA256 af kroppen og tidsstemplet); afvis enhver afsendelse, der er ældre end 5 minutter. Modtager-URL'er skal være https og verificeres ved hver afsendelse.
- Hostet i EU.Hetzner-servere i EU; underleverandører er angivet i privatlivspolitikken.
Ofte stillede spørgsmål
SDK, widget, tidsfrister, kvoter og volumen.
Hvilken plan kræves for API'et?
Det gratis abonnement er nok til at komme i gang: nøglen oprettes, og MCP-serveren svarer, til 3 Explainer-videoer om måneden med vandmærke, i de 8 gratis stilarter. De betalte abonnementer tilføjer flere videoer (15, 30 eller 100 om måneden) uden vandmærke, de 24 stilarter, din stemme i mikrofonen og AI-instruktøren. API'ets kvoter er dem for kontoen, ligesom i grænsefladen.
Findes der et SDK?
Der findes endnu ingen officiel SDK. API'et er HTTP og JSON, beskrevet i OpenAPI 3.1 (/openapi.json): eksemplerne på denne side fylder få linjer med fetch eller standard Python, og du kan generere en klient ud fra OpenAPI-filen.
Kan jeg indlejre en ClipOnIt-afspiller eller -editor på mit websted?
Nej, der findes ingen widget til indlejring. Du henter MP4-filen og viser den i din egen afspiller, eller hoster den selv.
Hvor lang tid tager en video?
En forklaringsvideo: få minutter (manuskript og derefter rendering, ca. 4 min. til rendering). Klip: ca. 1 til 5 minutter for 20 minutters video, og derefter eksport af hvert klip. API'et returnerer trinnet, procenten og et estimat af den resterende tid.
Hvad sker der, når en kvote er nået?
API'et svarer 402 med en tydelig besked (månedskvote eller AI-budget), 403 hvis funktionen ikke er i abonnementet, 429 hvis to Explainer-produktioner allerede kører. Til Explainer kontrollerer »dry_run«: true alt før start, uden at oprette noget eller blive faktureret.
Jeg vil koble ClipOnIt til alle mine brugere.
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.
Din første video via API'et, i dag
Crée une clé, copie un exemple, lance-le. Une question sur ton intégration : contact@cliponit.app.