للمطورين وتطبيقات SaaS
أضف الفيديو بالذكاء الاصطناعي إلى منتجك في بضع استدعاءات
واجهة REST API وخادم MCP وWebhooks: منتجك ينشئ فيديوهات توضيحية ويقطع الفيديوهات الطويلة إلى مقاطع قصيرة، دون أن يحتاج مستخدموك إلى فتح ClipOnIt.
من الخطة المجانية (3 فيديوهات شهرياً بعلامة مائية) · أنشئ المفتاح من الإعدادات ← التكاملات
طريقتان لاستخدامه
منتجا ClipOnIt، يُستدعيان من كودك أو عبر وكيل.
AI Explainer
أداة تدريب: فيديو توضيحي لكل درس
منتجك يرسل عنوان الدرس أو نصه، ويكتب ClipOnIt المشاهد ويرسم لها الصور ويضيف الصوت والترجمة النصية، ثم يُصدّر ملف MP4 عموديًا تعرضه بجانب الدرس.
POST /api/agent/produceMCP
وكيل ذكاء اصطناعي يتحكم في ClipOnIt
وكيلك (Claude، Cursor، VS Code أو وكيلك الخاص) يتصل بخادم MCP: يستورد فيديو، ويختار المقاطع، ويشغّل فيديو توضيحيًا وينتظر النتيجة باستخدام أدوات موصوفة مسبقًا.
POST /mcp
التدفق نفسه دائمًا
تستغرق الفيديوهات دقائق لا ملي ثانية: تنشئ مهمة، وتتابع حالتها، ثم تستلم الملف.
- إنشاء المهمة
طلب POST يتضمن موضوع الفيديو أو رابطه. استجابة فورية بمعرّف.
- متابعة الحالة
طلب GET كل 10 ثانية تقريباً: المرحلة، والنسبة المئوية، والوقت المتبقي. بالنسبة إلى Explainer، يمكن لـ webhook أن ينبّهك بدلاً من ذلك.
- استرداد الفيديو
عند الانتهاء، يكون رابط MP4 في الاستجابة. نزّله أو اعرضه في منتجك.
AI Explainer
فيديو توضيحي انطلاقًا من موضوع
يستقبل POST /api/agent/produce موضوعًا (أو نصًا، أو تسجيلًا صوتيًا) ويبدأ الكتابة ثم التصيير. يُرجع GET /api/jobs/{id} الحقول status وstep وpercent، ثم url عندما يكون الفيديو جاهزًا.
- duration_sمن 15 إلى 180 ثانية
- نمط24 أنماط بصرية، ونمطك أنت: GET /api/explainer/styles
- voiceصوت من الكتالوج، بالاسم أو المعرّف
- dry_runtrue: يتحقق من الحصة والتكلفة دون تشغيل أي شيء
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
خادم MCP للوكلاء
عنوان واحد https://cliponit.app/mcp، عبر HTTP « streamable ». تغطي الأدوات المنتجين: استيراد المقاطع والانتظار، وإنشاء المقاطع وتصديرها، وإنتاج فيديو توضيحي وانتظار اكتماله. الأدوات التي تعدّل شيئًا معلّمة كي يطلب الوكيل التأكيد أولًا.
Claude Desktop وClaude.ai: الإعدادات ← الموصلات ← إضافة موصل مخصص، مع العنوان أعلاه. يتم الاتصال عبر OAuth، دون مفتاح لنسخه؛ ChatGPT يعمل بالطريقة نفسها. خطوة بخطوة
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": {}}}'أن تُنبَّه بدل السؤال
من الإعدادات ← التكاملات، أضِف حتى 3 عنوان URL من نوع https. عند انتهاء إنتاج Explainer، يرسل ClipOnIt إليها job.done أو job.failed، بالكائن نفسه الذي يرجعه GET /api/jobs/{id}. ستة محاولات عند الفشل، خلال نحو 8 ساعات.
بالنسبة إلى مقاطع Smart Clipper، لا يوجد webhook بعد: تابع الحالة عبر 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", ""))حدود الخطط وحصصها
استدعاءات API تُحسب كما في الواجهة: نفس الحصص ونفس الحساب. عرض الأسعار
| مجاني | Starter | Pro | Business | |
|---|---|---|---|---|
| API وMCP | — | ✓ | ✓ | ✓ |
| فيديوهات Explainer شهرياً | — | 15 | 30 | 100 |
| إنتاجات Explainer في الوقت نفسه | — | 2 | 2 | 2 |
| مفاتيح API لكل حساب | — | 10 | 10 | 10 |
| Webhooks لكل حساب | — | 3 | 3 | 3 |
- المفتاح يبقى على خادمك.يمنح الوصول إلى حساب ClipOnIt كاملاً: لا تضعه أبداً في المتصفح أو تطبيق الهاتف أو مستودع Git. احفظه في متغير بيئة، واستدعِ ClipOnIt من الخادم الخلفي.
- مفتاح لكل استخدام، مع نطاقه.نطاق « قراءة » (الاطلاع، التحقق) أو « إنتاج » (إنشاء الفيديوهات). لكل مفتاح اسم وتاريخ آخر استخدام، ويُلغى بنقرة واحدة: تسري 401 من الاستدعاء التالي.
- لا يُعرض السر إلا مرة واحدة.لا يحتفظ ClipOnIt إلا ببصمته (SHA-256). وإذا فُقد، يُستبدل المفتاح ولا يمكن استرجاعه.
- Webhooks موقّعة.يحمل كل إرسال الترويسة X-ClipOnIt-Signature (HMAC-SHA256 لنص الطلب والطابع الزمني)؛ ارفض أي إرسال يتجاوز 5 دقائق. عناوين الاستقبال تكون بروتوكول https ويُتحقق منها عند كل إرسال.
- مستضاف في الاتحاد الأوروبي.خوادم Hetzner في الاتحاد الأوروبي؛ والمعالجون من الباطن مدرجون في سياسة الخصوصية.
الأسئلة الشائعة
SDK وwidget والمهل والحصص والحجم.
أي خطة أحتاج للـ API؟
تكفي الخطة المجانية للبدء: يمكنك إنشاء المفتاح والخادم MCP يستجيب، مع 3 فيديوهات Explainer شهرياً بعلامة مائية، وضمن 8 أنماط مجانية. الخطط المدفوعة تضيف المزيد من الفيديوهات (15 أو 30 أو 100 شهرياً) بدون علامة مائية، والأنماط الـ24، وصوتك عبر الميكروفون، والمخرج الذكي. حصص API هي حصص حسابك نفسها، كما في الواجهة.
هل يوجد SDK؟
لا يوجد SDK رسمي حتى الآن. واجهة API تعمل بـ HTTP وJSON، وموصوفة بمواصفات OpenAPI 3.1 (/openapi.json): أمثلة هذه الصفحة لا تتجاوز بضعة أسطر بـ fetch أو Python القياسية، ويمكنك توليد عميل من ملف OpenAPI.
هل يمكنني دمج مشغّل أو محرر ClipOnIt في موقعي؟
لا، لا يوجد مكوّن مضمّن. تحمّل ملف MP4 وتعرضه في مشغّلك الخاص، أو تستضيفه على خادمك.
كم يستغرق إنشاء فيديو؟
فيديو توضيحي: بضع دقائق (كتابة ثم تصيير، نحو 4 دقائق للتصيير). المقاطع: نحو 1 إلى 5 دقائق لكل 20 دقائق من الفيديو، ثم تصدير كل مقطع. تُرجع واجهة API المرحلة والنسبة المئوية وتقدير الوقت المتبقي.
ماذا يحدث عند بلوغ الحصة؟
ترد واجهة API بالرمز 402 مع رسالة واضحة (حصة الشهر أو ميزانية الذكاء الاصطناعي)، وبالرمز 403 إذا لم تكن الميزة ضمن الخطة، وبالرمز 429 إذا كانت إنتاجان من Explainer قيد التشغيل. أما « dry_run »: true في Explainer فيتحقق من كل شيء قبل التشغيل دون إنشاء أي شيء أو تحصيل أي رسوم.
أريد ربط ClipOnIt لجميع مستخدمي.
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.
أول فيديو لك عبر API، اليوم
Crée une clé, copie un exemple, lance-le. Une question sur ton intégration : contact@cliponit.app.