دراسة حالة · مؤسسة تعليم عالٍ أمريكية شمالية (سرّية)

تسجيل المحاضرات الآلي من البداية إلى النهاية: Canvas + Panopto + تنسيق Python

كيف بنت UnlockLive منصة آلية بالكامل لتسجيل المحاضرات تتكامل مع Canvas LMS وPanopto باستخدام Python وFastAPI — بنشر نحو 3,000 محاضرة تلقائياً في كل فصل، وخفض العبء الإداري بنسبة 80%، ومنح كل تسجيل مسار تدقيق قابلاً للتحقق.

  • القطاعالتعليم
  • السنة2024
  • البلدالولايات المتحدة
  • المدة6 أشهر
End-to-End Automated Lecture Capture: Canvas + Panopto + Python Orchestration hero screenshot

النتائج في لمحة

  • 80%انخفاض في العبء الإداري للدعم التعليمي
  • ~3,000محاضرات في الفصل تُنشر تلقائياً من البداية إلى النهاية
  • 100%تسجيلات موثقة في سجل التدقيق من التقاط المحاضرة حتى نشرها على Canvas
  • 4xنشر أسرع بعد الحصة — دقائق بدلاً من اليوم التالي

التحدي

كانت مؤسسة تعليم عالٍ في أمريكا الشمالية تستخدم Panopto لتسجيل المحاضرات وCanvas LMS لتقديم المقررات، دون أي رابط بينهما على نطاق واسع. وفي كل فصل دراسي، كان فريق التصميم التعليمي يقضي نحو 600 ساعة في الحلقة اليدوية نفسها: التأكد من انتهاء التسجيل، والعثور على مجلد Panopto الصحيح، وتسمية التسجيل بشكل سليم، وضبط الترجمة النصية والوصول، ونشر رابط في وحدة Canvas المناسبة، ثم ملاحقة المحاضرات التي لم تُسجَّل أصلاً.

كانت أنماط الإخفاق محبطة ومتوقعة. تسجيلات تُنشر في الشعبة الخاطئة. وترجمات نصية تتأخر أياماً. وقاعات في أواخر الفصل بأجهزة تسجيل معطلة لا يلاحظها أحد حتى يشتكي الطلاب. ولا مسار تدقيق — فعندما يسأل طالب «لماذا غابت محاضرة الخميس الماضي؟» لم يكن أحد قادراً على تقديم إجابة واثقة. أرادت المؤسسة استعادة الساعات الـ600 لفريقها، واكتشاف أنماط الإخفاق لحظة حدوثها، ونظاماً قادراً على التوسع إلى ضعف عدد القاعات الحالي دون زيادة عدد الموظفين.

حلّنا

بنينا طبقة تنسيق متكاملة بـ Python وFastAPI تستمع إلى أحداث مقررات Canvas وأحداث تسجيلات Panopto، وتربطها عبر نموذج كتالوج محلي يعرف المقررات والشعب والقاعات والمحاضرين، وتدير سير النشر بالكامل تلقائياً.

الكتالوج المحلي هو الفكرة المحورية. فبدلاً من طرح الأسئلة نفسها على Canvas وPanopto مراراً، نحتفظ بكتالوج PostgreSQL صغير وموثوق للمقررات والشعب وربط القاعات بالشعب وملكية المحاضرين للشعب وقواعد النشر التي اختارها كل قسم. وتحدّث أحداث Canvas Live Events وwebhooks من Panopto الكتالوج في وقت قريب من الفعلي؛ ثم تقود خدمة تنسيق FastAPI كل إجراء لاحق: حفظ التسجيل في مجلد Panopto الصحيح، وطلب الترجمة النصية، وضبط الوصول بحسب قائمة الشعبة، ونشر المحاضرة في وحدة Canvas المناسبة، وكتابة حدث تدقيق مهيكل لكل خطوة.

يلتقط التصفية الذكية أنماط الإخفاق التي كانت خفية سابقاً. فإذا لم يكن لمحاضرة مجدولة تسجيل خلال 15 دقيقة من انتهاء الحصة، ينبّه النظام فريق الدعم التعليمي ويفتح حادثة متتبَّعة. وإذا بقيت الترجمة النصية مفقودة بعد نافذة اتفاقية مستوى الخدمة، يصعّد النظام الأمر. ويُسجَّل كل إجراء نشر — ناجحاً كان أم لا — مع من ومتى ولماذا والأحداث السابقة التي أطلقته، فأصبح لسؤال «لماذا غابت محاضرة الخميس الماضي؟» إجابة خلال 30 ثانية.

  • كتالوج محلي للمقررات والشعب والقاعات والمحاضرين وقواعد النشر لكل قسم
  • استيعاب Canvas Live Events + webhooks من Panopto عبر مستقبِل بنمط الصندوق الوارد
  • آلة حالات غير مكررة الأثر لكل تسجيل: مُكتشَف → مُحفوظ → مُترجَم نصياً → منشور → مدقَّق
  • كشف ذكي للتسجيلات المفقودة مع اتفاقية مستوى خدمة 15 دقيقة وإنشاء حادثة متتبَّعة
  • مراقبة اتفاقية مستوى الخدمة للترجمة النصية مع تصعيد تلقائي عند فوات النافذة
  • تحكم في الوصول يراعي قائمة كل شعبة، مطبّق على مجلدات Panopto ومنشورات Canvas
  • أداة إعادة تشغيل لإعادة تنفيذ سير النشر من البداية إلى النهاية لأي تسجيل تاريخي
  • سجل تدقيق مهيكل يجيب عن «لماذا هذه المحاضرة مفقودة؟» خلال 30 ثانية
  • واجهة إدارية لفريق التصميم التعليمي لتعديل قواعد النشر دون الحاجة إلى مهندس

كيف بنيناه

  1. 01

    رسم سير العمل اليدوي بصدق

    رافقنا فريق التصميم التعليمي أسبوعين لتوثيق كل نقرة في العملية اليدوية القائمة، بما في ذلك الأجزاء التي لم يفكروا في ذكرها لأنها أصبحت عادة لديهم. أنتج التدقيق سير عمل من 47 خطوة لكل تسجيل، منها 41 خطوة قائمة على قواعد ويمكن أتمتتها بأمان، و6 خطوات تحتاج إلى حكم بشري وستبقى يدوية.

  2. 02

    تصميم الفهرس المحلي ونموذج الأحداث

    صمّمنا كتالوج PostgreSQL يضم المقررات والشُّعب وخرائط القاعة إلى الشعبة وملكية المدرّسين وقواعد النشر لكل قسم. كان المخطط صغيرًا عمدًا ومعايَرًا بصرامة حتى يظل منطق النشر مقروءًا. وأصبحت Canvas Live Events وwebhooks الخاصة بـ Panopto المدخلات الوحيدة التي تغيّر حالة الكتالوج.

  3. 03

    بناء خدمة التنسيق باستخدام FastAPI

    خدمة التنسيق هي تطبيق Python/FastAPI مع عمال Celery وآلة حالات idempotent لكل تسجيل: تم الرصد، تم الحفظ، طُلبت الترجمة النصية، تمت الترجمة النصية، طُبّق الوصول، نُشر في Canvas، اكتمل التدقيق. وكل انتقال خطوة منفصلة قابلة لإعادة المحاولة مع سجلات منظّمة ومعالجة dead-letter. ويمكن للمسار بأكمله إعادة تشغيل أي تسجيل سابق من البداية إلى النهاية عند الطلب.

  4. 04

    التجربة التجريبية والتوسع والتحسين المستمر

    أجرينا تجربة تجريبية مع قسم أكاديمي واحد طوال فصل دراسي كامل، مقارنين المخرجات الآلية بالخط المرجعي اليدوي أسبوعياً. وبعد 12 أسبوعاً بلا أي تباين، طرحنا المنصة قسماً تلو الآخر خلال الفصل التالي. وحافظ فريق التصميم التعليمي على ملكية قواعد النشر، إذ يستطيعون تعديل الفهرس وتعريفات القواعد عبر واجهة إدارية صغيرة دون الحاجة إلى مهندس.

حزمة التقنيات

  • Python
  • FastAPI
  • Canvas LMS API
  • Panopto REST API
  • PostgreSQL
  • Celery
  • Redis
  • AWS S3
  • AWS EventBridge
  • Datadog
  • تكامل واجهات API والأنظمة
  • Python وFastAPI
  • أتمتة سير العمل
  • حلول السحابة
“استعاد فريقنا 600 ساعة في الفصل الدراسي، ويحصل طلابنا على محاضراتهم في اليوم نفسه، وحين يحدث خلل نعلم به قبل وصول أول رسالة بريد إلكتروني. لقد غيّر ذلك ما يمكننا تقديمه للمحاضرين في هذه المؤسسة.”
مدير التصميم التعليمي · مؤسسة تعليم عالٍ (الاسم سري)

الأسئلة الشائعة

كيف تؤتمت بموثوقية سير عمل تسجيل المحاضرات بين Canvas وPanopto؟

لا تحاول التحكم في Canvas وPanopto مباشرة عبر القواعد، فهذا يصبح هشًا بسرعة. بدلًا من ذلك، احتفظ بكتالوج محلي صغير للمقررات والشُّعب والقاعات والمدرّسين يُحدَّث عبر Canvas Live Events وwebhooks الخاصة بـ Panopto. ثم شغّل آلة حالات idempotent لكل تسجيل تنفّذ كل إجراء لاحق مقابل الكتالوج. يصبح الكتالوج المصدر الوحيد للحقيقة، ويصبح بقية النظام منسِّقًا خفيفًا قابلًا لإعادة التشغيل.

كيف تكتشفون المحاضرات التي كان ينبغي تسجيلها ولم تُسجَّل؟

قارن أحداث الحصص المجدولة من خريطة القاعة إلى الشعبة مع أحداث تسجيلات Panopto المستلمة ضمن اتفاقية مستوى خدمة (SLA) مدتها 15 دقيقة. وإذا لم يكن للجلسة المجدولة تسجيل مرتبط بها، نبّه فريق الدعم التعليمي وافتح حادثة متتبَّعة تتضمن القاعة والشعبة والمدرّس والأحداث السابقة التي رُصدت وتلك التي لم تُرصد. هذه هي الأتمتة الأعلى قيمة في المنصة.

هل تستطيع Panopto API التعامل مع التنسيق على نطاق الإنتاج؟

نعم — واجهة Panopto REST API موثّقة جيدًا ومستقرة للعمليات المهمة (إنشاء المجلدات، وبيانات رفع التسجيلات الوصفية، والتحكم في الوصول، وسير عمل الترجمة النصية). وسؤال الموثوقية يخصّ جانبك: استدعاءات idempotent، وإعادة محاولة أسّية، وآلة حالات لكل تسجيل بحيث يمكنك إعادة تشغيل أي خطوة فاشلة دون تنسيق. نتعامل مع Panopto تمامًا كما نتعامل مع أي API لطرف ثالث في تكامل إنتاجي.

كيف تُبقي فرق التصميم التعليمي متحكمة في قواعد النشر دون إشراك الهندسة؟

انقل القواعد من الكود إلى الكتالوج. نزوّد الفريق بواجهة إدارة صغيرة فوق جداول قواعد PostgreSQL: ما الذي يُنشر في أي وحدة Canvas، وما سياسة الوصول التي تريدها كل إدارة، وما اتفاقية مستوى خدمة التسميات التوضيحية. تمتلك الهندسة المنسّق (orchestrator)، ويمتلك الفريق القواعد. ولا تحتاج تغييرات القواعد إلى نشر جديد أبدًا.

كم تبلغ تكلفة ومدة مشروع أتمتة شامل بين Canvas وPanopto عادةً؟

من 16 إلى 26 أسبوعاً لطرح بمستوى الإنتاج في مؤسسة متوسطة إلى كبيرة. الأسابيع الأربعة إلى الستة الأولى مخصصة لاستكشاف سير العمل وتصميم الفهرس، وإتقانها هو ما يجعل بقية العمل أقل كلفة. وبمجرد انضمام قسم إلى المنصة، تستغرق إضافة الأقسام التالية أياماً لا أسابيع.

هل تريد نتيجة كهذه؟

تحدّث إلى الفريق نفسه الذي بنى تسجيل المحاضرات الآلي من البداية إلى النهاية: Canvas + Panopto + تنسيق Python. سنحدد نطاق مشروعك، ونقدّم لك عرضًا بسعر ثابت، ونُريك أقرب مثال من أعمالنا.

احجز مكالمة استراتيجية