PeakClips Pipeline

دراسة حالةخط أتمتة للوسائطمشروع 03

شُغّل محليًا كخدمة خلفية (يونيو–سبتمبر 2026) · عمل مشترك · مستودع خاص

مخطط PeakClips Pipeline — مخطط لخط المعالجة (توضيحي)

الملخص

خط معالجة لمقاطع الفيديو القصيرة قادت القياسات هندسته: أداة إثبات مودَعة في المستودع تقرّر ما إذا كان يُسمح لمسار أسرع بالطرح، ودفتر تسليم يجعل الأعطال آمنة، وواجهة المشغّل محصّنة كأنها تطبيق عام. أما الجانب التجاري (التوزيع والجمهور) فلم ينجح، وهذه الصفحة تقول ذلك صراحةً.

المشكلة والمستفيدون

تحويل مقاطع الفيديو الطويلة إلى مقاطع قصيرة قابلة للنشر يدويًا بطيء، وأي خط أتمتة يجب أن يكون سريعًا على مصادر 4K، وأن يتعافى من الأعطال دون نشر مزدوج، وألا يسمح لمقطع غير مُراجَع بالوصول إلى أي منصة.

المشغّلان (أنا وشريك) يراجعان المقاطع عبر بوت محادثة ولوحة ويب؛ وفي آخر السلسلة جماهير منصات التواصل التي لم يُوصَل إليها عمليًا على نطاق واسع.

دوري

المهندس الرئيسي: نحو 87% من الإيداعات غير إيداعات الدمج، وكل دمج إلى main بعد الأسابيع الأولى، و75 طلب سحب في تدفق يقتصر على طلبات السحب. بنيتُ نواة الخط، وأعمال الأداء وأدوات إثباتها، ودفتر التعافي والتسليم، ولوحة التحكم ومصادقتها، وبوابات السلامة وحزمة الاختبارات. وبنى الشريك ناشري المنصات، وموجّه المنصات المتعددة، ومقياس حقوق النشر الاستدلالي، ووضع التقسيم. كان التنفيذ بمساعدة الذكاء الاصطناعي تحت توجيهي.

البنية

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

القرارات والمفاضلات

  • التحليل على نسخة وسيطة، مثبت بالبناء. كان فكّ ترميز 4K60 AV1 لكل مقطع زمني يكلّف نحو 25 دقيقة لكل مصدر. الخيارات التي قيست: فكّ الترميز عبر أنبوب (أبطأ 2× من OpenCV)، وفكّ ترميز AV1 بالعتاد (يتراجع بصمت إلى البرمجيات)، وتشغيل YOLO على معالج الرسوميات (ليس عنق الزجاجة)، ونسخة وسيطة بدقة 480p. فازت النسخة الوسيطة بقاعدة واحدة: يُعاد الحكم على كل حكم «صمت» صادر عن النسخة الوسيطة على الملف بدقته الكاملة، فلا يمكن للمسار السريع إلا أن يكون بصرامة المسار القديم نفسها.
  • رفض المرمّز الأرخص بـ 36×. كان مقياس SSIM المحلي يرجّح مرمّز العتاد للإخراج النهائي. طلبتُ إثباتًا بعد الرفع: بعد إعادة الترميز على المنصة خسرت التسميات التوضيحية 0.005 من SSIM مقابل المرمّز البرمجي. رُفض؛ والدرس مسجّل في الإعدادات وفي سياسة السلامة.
  • رفض نسخة التتبّع الوسيطة. فشلت أداة قياس انجراف القص ذات حدود نجاح صريحة على لقطات حقيقية، وكان المكسب نحو 1.1× فقط؛ يبقى العلم مطفأً والشيفرة خاملة.
  • مسار موافقة واحد. تمرّ عمليات الكتابة من لوحة التحكم عبر آلية الموافقة في البوت (طابور تسلسلي، ومنع التكرار، وتأكيد قبل النشر)؛ وتُرفض من جهة الخادم المنشورات المزوّرة إلى المسارات الموقوفة.
  • إصلاح التعليق إصلاحًا صحيحًا. كان عامل متعثّر يعطّل مجمّع البوابات إلى الأبد عند الإيقاف؛ يستخدم الإصلاح انضمامًا في الخلفية بمهلة قاطعة ويقتل العمليات اليتيمة التي أُخذت لقطة لها عند الإنشاء، وأُثبِت بعملية فرعية متعثّرة حقيقية لا بمحاكاة.

الأمن والموثوقية

  • مصادقة لوحة التحكم: PBKDF2-HMAC-SHA256 بـ 240,000 تكرار، مع ملح ومقارنة بزمن ثابت؛ ملف تعريف ارتباط للجلسة موقّع HttpOnly مدته 12 ساعة؛ رمز CSRF لكل جلسة على كل طلب POST؛ إقفال تصاعدي محمي بقفل تبادلي؛ سقف لحجم الجسم؛ وربط بالمضيف المحلي فقط.
  • عُثر على ثغرة XSS في لوحة التحكم خلال حملة صيد أخطاء، وثُبّتت باختبار يؤكد أن كل إدراج نصي مُهرَّب (123 موقع استدعاء).
  • أُغلقت ثغرة في بوابة المنصات (كانت الفحوص المسبقة تحرس منصة واحدة فقط) واختُبرت عبر كل مسارات المقاطع القصيرة.
  • مورس التعافي فعليًا: أربع عمليات إقلاع للخدمة الخلفية أعادت مهمة انقطعت إلى الطابور بعد سكون أو إعادة تشغيل.

نتائج مُتحقَّق منها

المقياسالنتيجةالدليل
بوابة الصمت، مصدر واحد 4K60 مدته 24 دقيقة، 31 نافذة590.1 ثانية ← 17 ثانية (16.7 ثانية مقيسة)؛ 30/31 حكمًا متطابقًا، و0 حذف مفقود، و1 نافذة حدّية رُفعت للمراجعةمخرجات tools/diff_gate.py، 2026-07-05؛ الأداة مودَعة في طلب السحب #38
قرار المرمّزرُفض مرمّز العتاد: التسميات التوضيحية −0.005 في SSIM بعد إعادة الترميز على المنصةإعدادات الخط، الأسطر 618–626، الإيداع b4a95ed، 2026-07-06
الاختباراتنحو 80+ ملف اختبار للخط (132 على مستوى المستودع مع منتج شقيق)؛ حزم التعافي، والتكرار الآمن (idempotency)، ومصادقة لوحة التحكم، والبواباتالمستودع؛ لا تكامل مستمر (مشغّل محلي)
التشغيلأُنتج 364 مقطعًا من 2026-06-21 إلى 2026-09-04؛ خدمة خلفية تحت launchdقاعدة بيانات الحالة، للقراءة فقط
العملية283 إيداعًا، و75 طلب سحب، ودمج من المالك فقطتاريخ Git

القيود والعمل المتبقي

  • لا تكامل مستمر؛ تعمل الاختبارات عبر مشغّل محلي. نتيجة 590 ← 17 ثانية تخص بوابة واحدة على فئة مصادر واحدة؛ ولم تُثبَت على فئة مصادر ثانية.
  • لم يصل المشروع كعمل تجاري إلى جمهور: أنهت المنصة قناة التوزيع الرئيسية، ولا يوجد جمهور حي مُتحقَّق منه على الحسابات الباقية. والفحص المسبق لحقوق النشر يتجاوزه المشغّل في الإنتاج بقرار منتج متعمّد.
  • المستودع خاص ومشترك مع شريك، لذا فالأرقام هنا من مراجعة 2026-10-21 لا من روابط عامة.