Deewanالتوثيق

أسماء الحقول ورموز الأخطاء وأمثلة الشيفرة بالإنجليزية، كما تستخدمها في برنامجك.

التسجيلات

اعرض تسجيلات الاجتماعات ونزّلها — يُفك تشفيرها لديك، لا لدينا.

يبدأ المضيف التسجيل من داخل الاجتماع. يُجمَّع التسجيل ويُشفَّر في متصفحه ثم يُرفع على أجزاء، فيكون الملف المخزَّن نصًا مشفّرًا: خوادمنا تحفظ الأجزاء لا الاجتماع. وتتيح الواجهة عرض التسجيلات ومنحك الأجزاء مع مفتاح ذلك التسجيل وحده.

عرض التسجيلات

ts
const { data } = await deewan.recordings.list({ room_id: roomId, limit: 20 });
// { id, title, status, mime_type, parts, bytes, duration_ms, started_at, … }

تنزيل تسجيل

تجلب حزمة SDK كل الأجزاء وتفك تشفيرها محليًا، وتعيد ملفًا قابلًا للتشغيل:

ts
import { writeFile } from "node:fs/promises";

const { bytes, mimeType } = await deewan.recordings.download(recordingId);
await writeFile("lesson.webm", bytes);  // mimeType is usually video/webm

بدون حزمة SDK: يعيد POST /recordings/{id}/download المفتاح وعناوين الأجزاء. اجلب الأجزاء بالترتيب؛ كل جزء يبدأ بمتجه تهيئة طوله ١٢ بايت يليه نص مشفّر بخوارزمية AES-256-GCM، مع بيانات مصادقة إضافية بالصيغة deewan-recording:<id>:<index>. ثم اربط الأجزاء المفكوكة ببعضها لتحصل على الملف.

هذا المفتاح يفك تشفير الاجتماع. تعامل مع استجابة التنزيل كما تتعامل مع كلمة مرور: اطلبها من خادمك لا من المتصفح، ولا تسجّلها في السجلات.

متى يصبح التسجيل جاهزًا

  • يُطلق الحدث recording.ready عندما يوقف المضيف التسجيل (أو يغادر فيُغلق التسجيل نفسه).
  • تكون الحالة recording ثم ready، وحقل parts هو عدد الأجزاء المطلوب جلبها.
  • حذف التسجيل يمحو أجزاءه المخزّنة ولا يمكن التراجع عنه.
  • من يمكنه مشاهدة التسجيل داخل ديوان يتبع الغرفة: كل من يستخدمها، أو مضيفوها فقط.