أسماء الحقول ورموز الأخطاء وأمثلة الشيفرة بالإنجليزية، كما تستخدمها في برنامجك.
التسجيلات
اعرض تسجيلات الاجتماعات ونزّلها — يُفك تشفيرها لديك، لا لدينا.
يبدأ المضيف التسجيل من داخل الاجتماع. يُجمَّع التسجيل ويُشفَّر في متصفحه ثم يُرفع على أجزاء، فيكون الملف المخزَّن نصًا مشفّرًا: خوادمنا تحفظ الأجزاء لا الاجتماع. وتتيح الواجهة عرض التسجيلات ومنحك الأجزاء مع مفتاح ذلك التسجيل وحده.
عرض التسجيلات
const { data } = await deewan.recordings.list({ room_id: roomId, limit: 20 });
// { id, title, status, mime_type, parts, bytes, duration_ms, started_at, … }تنزيل تسجيل
تجلب حزمة SDK كل الأجزاء وتفك تشفيرها محليًا، وتعيد ملفًا قابلًا للتشغيل:
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هو عدد الأجزاء المطلوب جلبها. - حذف التسجيل يمحو أجزاءه المخزّنة ولا يمكن التراجع عنه.
- من يمكنه مشاهدة التسجيل داخل ديوان يتبع الغرفة: كل من يستخدمها، أو مضيفوها فقط.