التشغيل الآمن
اطلب كلمة مرور لمرة واحدة (OTP) من خادمك لكل مشاهد، ثم ضمّن المشغّل بها.
للفيديوهات المدفوعة أو الخاصة، يطلب خادمك رمز OTP جديدًا لكل مشاهد مسجَّل الدخول في كل مشاهدة للصفحة، وتضمّن صفحتك المشغّل به.
كيف يعمل
- يفتح مشاهدٌ مسجَّل الدخول صفحة في موقعك تعرض فيديو.
- يتحقق خادمك من أن هذا المشاهد يحق له مشاهدة الفيديو، ثم يستدعي
POST /playback/otpبالمفتاح الخاص للمكتبة. - تعيد أوكتا فيديو رمز OTP ورابط
embed_urlيتضمن الرمز. - تعرض صفحتك إطار iframe بهذا الرابط
embed_url. - يستخدم المشغّل رمز OTP، ويتحقق من نطاق الصفحة ودولة المشاهد وفق إعدادات الأمان للمكتبة، ثم يبدأ التشغيل.
لا يُستخدم رمز OTP إلا مرة واحدة. بعد أن يستخدمه المشغّل، يتابع المشاهد المشاهدة والتنقّل وتغيير الجودة ضمن جلسة التشغيل نفسها دون رمز جديد.
اطلب رمز OTP
POST https://api.octavideo.tech/api/v1/playback/otp
AccessKey: ovk_your_private_key
Content-Type: application/jsonالحقل
النوع
يعيد الطلب الناجح 201 Created:
{
"data": {
"otp": "Zx8kQ2mVb7nR4tY1uW9eA3sD6fG0hJ5kL2pO8iU7yT4",
"expires_at": "2026-10-25T09:35:00Z",
"embed_url": "https://player.octavideo.tech/embed/0b8e5d3a-1c2f-4e6a-8b7d-9f0a1b2c3d4e/6f1c2b9e-4a7d-4f3e-9b8a-2d5c7e1f0a34?otp=Zx8kQ2mVb7nR4tY1uW9eA3sD6fG0hJ5kL2pO8iU7yT4"
}
}- طول
otpهو 43 حرفًا، ويعمل مرة واحدة. expires_atهو وقت انتهاء صلاحية الرمز إن لم يستخدمه أحد، بتوقيت UTC.embed_urlهو رابط المشغّل الذي تحمّله في إطار iframe. استخدمه كما هو.
أرسل user_id دائمًا
تحسب أوكتا فيديو المشاهدين الفريدين حسب user_id. بوجوده يُحسب الشخص مرة واحدة على هاتفه وحاسوبه وجهازه اللوحي. وبدونه يُحسب كل متصفح مشاهدًا مستقلًا، فيُحسب الطالب نفسه مرتين إن شاهد من جهازين.
- أرسل معرّف المشاهد في نظامك، مثل
student-4821. يُفضَّل المعرّف الداخلي على البريد الإلكتروني. - يصل طوله إلى 128 حرفًا من أحرف ASCII القابلة للطباعة، بلا مسافات.
- أرسل قيمة
user_idنفسها للشخص نفسه في كل مرة.
ضمّن المشغّل
اطلب رمز OTP على خادمك قبل عرض الصفحة مباشرة، ثم ضع embed_url في إطار iframe. يقرأ كل مثال المفتاح من متغيّر البيئة OCTAVIDEO_KEY، ويهرّب الرابط قبل كتابته في HTML:
curl -X POST "https://api.octavideo.tech/api/v1/playback/otp" \
-H "AccessKey: $OCTAVIDEO_KEY" \
-H "Content-Type: application/json" \
-d '{"video_id": "6f1c2b9e-4a7d-4f3e-9b8a-2d5c7e1f0a34", "user_id": "student-4821", "ttl_seconds": 300}'
# Then, in your page:
# <iframe src="EMBED_URL" style="border:0;width:100%;aspect-ratio:16/9"
# allow="encrypted-media; fullscreen" allowfullscreen></iframe>يأخذ إطار iframe عرض الحاوية التي تضعه فيها ويحافظ على نسبة 16:9، فتحدد صفحتك الحجم.
أفضل الممارسات
- رمز OTP واحد لكل مشاهدة للصفحة. اطلب رمزًا جديدًا في كل مرة تُعرض فيها الصفحة. لا تخزّن الرمز مؤقتًا، ولا تشاركه بين المشاهدين، ولا تُعِد استخدامه بعد إعادة التحميل.
- اطلبه قبل العرض مباشرة. تمنح القيمة الافتراضية لـ
ttl_secondsوهي 300 المتصفحَ 5 دقائق لتحميل المشغّل. لا ترفعها إلا للصفحات التي تبقى مفتوحة وقتًا طويلًا قبل تحميل الفيديو. - تحقّق من الصلاحية أولًا. تثق أوكتا فيديو بخادمك: لا تطلب رمز OTP إلا بعد أن تتأكد أن المشاهد يحق له مشاهدة هذا الفيديو.
- أبقِ المفتاح على الخادم. لا يرى المتصفح إلا
embed_url. اقرأ المصادقة.
الأخطاء
عند طلب رمز OTP:
| الحالة | الرمز | المعنى |
|---|---|---|
400 | validation_failed | حقل مفقود أو غير صالح، ويذكره details.fields. |
401 | unauthorized | ترويسة AccessKey مفقودة أو المفتاح غير صالح. |
404 | not_found | الفيديو غير موجود في هذه المكتبة. |
409 | video_not_ready | ما زال الفيديو قيد المعالجة أو فشلت معالجته. انتظر حتى يصبح جاهزًا. |
عند تحميل المشغّل، يرفض التشغيل ويعرض خطأً في الحالات التالية:
| الرمز | المعنى | الحل |
|---|---|---|
unauthorized | استُخدم رمز OTP من قبل أو انتهت صلاحيته. | اطلب رمزًا جديدًا لكل مشاهدة للصفحة. |
domain_not_allowed | الصفحة التي تضمّن المشغّل ليست ضمن النطاقات المسموحة للمكتبة. | أضف النطاق في النطاقات المسموحة. |
country_blocked | تحظر المكتبة التشغيل من دولة المشاهد. | راجع حظر الدول. |
اقرأ الأخطاء لمعرفة شكل الخطأ والقائمة الكاملة للرموز.