Für Entwickler und SaaS-Produkte
Füge KI-Video in wenigen Aufrufen zu deinem Produkt hinzu
Eine REST API, ein MCP-Server und Webhooks: Dein Produkt erstellt Erklärvideos und schneidet lange Videos in Shorts, ohne dass deine Nutzer jemals ClipOnIt öffnen müssen.
Ab Starter-Tarif · Schlüssel unter Einstellungen → Integrationen erstellen
Two ways to use it
Die zwei Produkte von ClipOnIt, aufgerufen aus deinem Code oder von einem Agenten.
AI Explainer
Ein Trainingstool: ein Erklärvideo pro Lektion
Dein Produkt sendet den Titel oder Text der Lektion; ClipOnIt schreibt die Szenen, illustriert sie, fügt Stimme und Untertitel hinzu und rendert ein vertikales MP4, das du neben dem Kurs zeigst.
POST /api/agent/produceMCP
Ein KI-Agent, der ClipOnIt steuert
Dein Agent (Claude, Cursor, VS Code oder ein eigener) verbindet sich mit dem MCP-Server: Er importiert ein Video, wählt Clips aus, startet ein Erklärvideo und wartet auf das Ergebnis mit bereits beschriebenen Tools.
POST /mcp
Immer derselbe Ablauf
Ein Video dauert Minuten, nicht Millisekunden: Du erstellst eine Aufgabe, verfolgst ihren Status und rufst dann die Datei ab.
- Aufgabe erstellen
Ein POST mit dem Thema oder dem Videolink. Sofortige Antwort mit einer ID.
- Status verfolgen
Ein GET alle 10 s oder so: Schritt, Prozentsatz, verbleibende Zeit. Für den Explainer kann dich stattdessen ein Webhook benachrichtigen.
- Video abrufen
Danach steht die MP4-URL in der Antwort. Lade sie herunter oder zeige sie in deinem Produkt an.
AI Explainer
Ein Erklärvideo aus einem Thema
POST /api/agent/produce nimmt ein Thema (oder ein Skript oder eine Audioaufnahme) und startet das Schreiben und Rendern. GET /api/jobs/{id} liefert Status, Schritt, Prozent und dann die URL, sobald das Video fertig ist.
- duration_s15 bis 180 Sekunden
- style24 visuelle Stile und deine eigenen: GET /api/explainer/styles
- voiceeine Stimme aus dem Katalog, per Name oder ID
- dry_runtrue: prüft Kontingent und Kosten, ohne etwas zu starten
curl -s -X POST https://cliponit.app/api/agent/produce \
-H "Authorization: Bearer $CLIPONIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"topic": "Photosynthesis in 3 steps", "duration_s": 45}'
curl -s https://cliponit.app/api/jobs/JOB_ID \
-H "Authorization: Bearer $CLIPONIT_API_KEY"
curl -s -o lesson.mp4 "JOB_URL"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: "Photosynthesis in 3 steps", 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": "Photosynthesis in 3 steps", "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"], "lesson.mp4")
else:
print(job["error"])MCP
Ein MCP-Server für Agenten
Einzelne Adresse https://cliponit.app/mcp, über streambares HTTP. Die Tools decken beide Produkte ab: Clips importieren, abwarten, erstellen und exportieren, ein Erklärvideo erzeugen und darauf warten. Die Tools, die etwas ändern, sind markiert, damit der Agent vorher nachfragt.
Claude Desktop und Claude.ai: Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen, mit der oben stehenden Adresse. Die Anmeldung läuft über OAuth, kein Schlüssel zum Kopieren; ChatGPT funktioniert genauso. Schritt für Schritt
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": {}}}'Benachrichtigt werden statt abzufragen
Unter Einstellungen → Integrationen kannst du bis zu 3 https-URLs hinzufügen. Wenn eine Explainer-Produktion endet, sendet ClipOnIt dorthin job.done oder job.failed, mit demselben Objekt wie GET /api/jobs/{id}. Bei einem Fehler sechs Versuche, über etwa 8 Stunden.
Es gibt noch keine Webhooks für Smart Clipper-Clips: Verfolge den Status mit 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", ""))Limits und Kontingente pro Tarif
API-Aufrufe zählen genauso wie in der App: gleiche Kontingente, gleiches Konto. Preise ansehen
| Free | Starter | Pro | Business | |
|---|---|---|---|---|
| API und MCP | — | ✓ | ✓ | ✓ |
| Erklärvideos pro Monat | — | 15 | 30 | 100 |
| Gleichzeitige Explainer-Produktionen | — | 2 | 2 | 2 |
| API-Schlüssel pro Konto | — | 10 | 10 | 10 |
| Webhooks pro Konto | — | 3 | 3 | 3 |
Sicherheit
Rufe ClipOnIt von deinem Server aus auf, niemals aus dem Browser deiner Nutzer.
Datenschutzerklärung- Der Schlüssel bleibt auf deinem Server.Er gewährt Zugriff auf das gesamte ClipOnIt-Konto: niemals im Browser, in einer mobilen App oder in einem Git-Repo. Bewahre ihn in einer Umgebungsvariable auf und rufe ClipOnIt von deinem Backend aus auf.
- Ein Schlüssel pro Anwendung, mit seinem Umfang.Umfang „Read“ (abfragen, prüfen) oder Umfang „production“ (Videos erstellen). Jeder Schlüssel hat einen Namen und ein Datum der letzten Nutzung und wird mit einem Klick widerrufen. Ab dem nächsten Aufruf liefert er 401.
- Der Schlüssel wird nur einmal angezeigt.ClipOnIt speichert nur seinen Hash (SHA-256). Ein verlorener Schlüssel wird ersetzt, nie ausgelesen.
- Signierte Webhooks.Jede Zustellung enthält X-ClipOnIt-Signature (HMAC-SHA256 aus Zeitstempel und Body); alles, was älter als 5 Minuten ist, wird abgelehnt. Empfangs-URLs müssen https sein und werden bei jeder Zustellung geprüft.
- Gehostet in der Europäischen Union.Hetzner-Server in der EU; Auftragsverarbeiter sind in der Datenschutzerklärung aufgeführt.
Häufig gestellte Fragen
SDK, Widget, Zeitverhalten, Kontingente und Volumen.
Welchen Tarif brauche ich für die API?
Ab Starter. Der kostenlose Tarif hat keinen API- oder MCP-Zugang: Es kann kein Schlüssel erstellt werden, und der MCP-Server antwortet mit „Tarif ohne API-Zugang“. API-Kontingente sind die Kontingente des Kontos, wie in der App.
Gibt es ein SDK?
Derzeit gibt es kein offizielles SDK. Die API arbeitet mit HTTP und JSON und ist in OpenAPI 3.1 (/openapi.json) beschrieben: Die Beispiele auf dieser Seite passen in wenige Zeilen fetch oder Standard-Python, und aus der OpenAPI-Datei kannst du einen Client generieren.
Kann ich einen ClipOnIt-Player oder -Editor in meine Website einbetten?
Nein, es gibt kein einbettbares Widget. Du lädst die MP4-Datei ab und zeigst sie in deinem eigenen Player an oder hostest sie selbst.
Wie lange dauert ein Video?
Ein Erklärvideo: ein paar Minuten (Schreiben, dann Rendern, etwa 4 Min. fürs Rendern). Clips: etwa 1 bis 5 Minuten für 20 Minuten Video, danach der Export jedes Clips. Die API liefert den Schritt, den Prozentwert und eine Schätzung der verbleibenden Zeit.
Was passiert, wenn ein Kontingent erreicht ist?
Die API liefert 402 mit einer klaren Meldung (Monatskontingent oder KI-Budget), 403, wenn die Funktion nicht im Tarif enthalten ist, 429, wenn bereits zwei Explainer-Produktionen laufen. Beim Explainer prüft "dry_run": true vor dem Start alles, ohne etwas zu erstellen oder abzurechnen.
Ich möchte ClipOnIt für alle meine Nutzer anbinden.
A key acts on a single ClipOnIt account: videos and quotas belong to that account. For larger-scale use, write to contact@cliponit.app with your volume and use case.
Dein erstes Video über die API, heute
Create a key, copy an example, run it. A question about your integration: contact@cliponit.app.