فيديوهاتيالتوثيق

الأحداث

أسماء أحداث خطافات الويب، ومغلِّف التسليم، والتحقّق من التوقيع.

سجّل نقطة وصول من خطافات الويب فيرسل إليها فيديوهاتي طلب POST في كل مرّة يقع فيها أحد أحداث النسخة الأولية. أنت تستقبل عمليات التسليم هذه — ولا تستدعي نقطة التسليم بنفسك أبدًا. للإعداد الكامل من أوّله لآخره — تسجيل نقطة وصول، والتحقّق من التوقيعات، ومعالجة إعادات المحاولة في خادمك — راجع دليل Webhooks.

أسماء الأحداث

الحدثيقع عند
video.upload.completedاكتمال رفع مُجزّأ ووصول الكائن المصدر إلى التخزين.
video.encoding.readyاكتمال الترميز؛ يمكن تشغيل الفيديو.
video.encoding.failedفشل ترميز الفيديو.
video.deletedحذف فيديو حذفًا ناعمًا.
playback.startedبدء تشغيل جلسة بثّ.
playback.completedبلوغ جلسة بثّ نهاية الفيديو.
payment.succeededنجاح دفعة للحساب.
payment.failedفشل دفعة للحساب.

المغلِّف

جسم كل تسليم كائن JSON بهذا الشكل:

{
  "id": "01JZ9WV3N8GQ5T2M7K4C6XBARM",
  "type": "video.encoding.ready",
  "created_at": "2026-06-11T11:00:00.000Z",
  "project_id": "01JZ9WV3N8GQ5T2M7K4C6XBARF",
  "data": {
    "videoId": "01JZ9WV3N8GQ5T2M7K4C6XBARH"
  }
}
  • id — مُعرّف ULID لهذا الحدث. استخدمه لإزالة تكرار إعادات المحاولة.
  • type — أحد أسماء الأحداث أعلاه.
  • created_at — طابع زمني بصيغة ISO-8601.
  • project_id — المشروع الذي ينتمي إليه الحدث.
  • data — حمولة خاصّة بالحدث.

التحقّق من التوقيع

يحمل كل تسليم الترويسة:

Videohati-Signature: t=<unix_ts>,v1=<hex_sha256>

يغطّي HMAC-SHA256 السلسلة <unix_ts>.<raw_body> باستخدام سرّ التوقيع الخاصّ بنقطة الوصول (يُعاد مرّة واحدة عند التسجيل أو التدوير). للتحقّق:

  1. اقرأ t وv1 من الترويسة.
  2. ارفض إن كان t قديمًا جدًّا (سماحية خمس دقائق تُبعد إعادات التشغيل).
  3. احسب HMAC_SHA256(secret, t + "." + rawBody) بصيغة hex بأحرف صغيرة.
  4. قارن بـ v1 بمقارنة ثابتة الزمن.

تشحن حِزم التطوير الرسمية مساعِد webhooks.verify ينفّذ الخطوات الأربع كلها. تحقّق دائمًا من جسم الطلب الخام — لا من كائن أُعيدت تهيئته.

الإقرار بالتسليم

أعِد أي رمز 2xx خلال 10 ثوانٍ للإقرار. تُعاد محاولة الاستجابات غير 2xx (أو حالات انتهاء المهلة) وفق جدول التسليم.