أود الحصول على بعض النصائح حول ما يجب فعله هنا، لكن لدي أيضًا بعض الأفكار حول كيفية التعامل مع هذا الأمر بشكل أفضل.
ما الذي قد يحدث
إحدى النظريات هي أن سيرفرنا قد تم تحديده من قبل YouTube على أنه يقوم بحصاد مقاطع الفيديو الموسيقية، وبالتالي نواجه قيودًا أو حظرًا.
نحن منتدى صغير غير ملحوظ في المملكة المتحدة بحركة مرور ضئيلة، لكن لدينا خيطين (في الواقع خيط واحد تم تقسيمه إلى اثنين بسبب حجمه) يحتويان على أكثر من 10 آلاف و2 ألف منشور لفيديوهات موسيقية. إنه سلسلة موسيقية حيث ينشر المستخدم التالي أغنية مرتبطة، غالبًا بطريقة هامشية، بالمنشور السابق.
بال当然، لدينا خيوط أخرى تحتوي على روابط YouTube، لكن هذا الخيط بالتحديد كثيف جدًا بالمحتوى الموسيقي (حوالي 100%).
بعد إعادة معالجة (re-bake) في عطلة نهاية الأسبوع، أفترض أن YouTube راقب نشاط أداة Onebox التي تحاول جلب رؤوس البيانات للعديد من مقاطع الفيديو الموسيقية، ووضعت خوارزمياتها موقعنا في قائمة المراقبة.
حاولت لاحقًا إعادة معالجة المنشورات، وهو ما يُفترض أنه أكد لـ YouTube شكوكها بأن كل ما نقوم به من عنوان IP هذا هو محاولة لتحميل مقاطع فيديو موسيقية.
قد يكون مرتبطًا بـ Digital Ocean
لذا، عند البحث في Google عن أخطاء 429 على YouTube وتجاهل جميع نتائج YouTube API، تشير النتائج في النهاية إلى مجموعة من المشاكل المتشابهة التي تقول إن عناوين IP الخاصة بها تم إدراجها في قوائم الرمادية/السوداء أو حظرها نتيجة لاستخدامها خوادم افتراضية - وتم ذكر اسم Digital Ocean تحديدًا.
الفرضية هي أن YouTube قد ‘يحظر’ سلسلة من عناوين IP، مما يؤدي غالبًا إلى تورط خوادم أخرى مشروعة كأضرار جانبية.
إليك إحدى هذه المشاكل والحل المحتمل:
https://support.google.com/youtube/thread/21697789?hl=en
وهنا مثال آخر من مطور على medium.com يعمل على واجهة برمجة التطبيقات (API) الخاصة بـ embed.ly:
https://support.google.com/youtube/thread/21939228?hl=en
كان الحل المقترح في المنشور الأول هو تعطيل IPv6 على الـ droplet.
هل يعرف أحد ما إذا كان ذلك يبدو محتملًا، أو إذا كان سيسبب أي مشاكل؟
لقد امتنعت عن القيام بذلك في الوقت الحالي حتى أتمكن من جمع أي بيانات أخرى قد تكون ضرورية للمساعدة في الحل.
ما الذي يجب أن يحدث؟
أولاً، أفهم أن رد الفعل هنا قد يكون أن تجربتي حالة هامشية (edge-case) ولا حاجة لأي تغيير.
أستطيع فهم ذلك. لكن إذا كان @marcozambi وأنا قد اكتشفنا نفس المشكلة في فترة زمنية قصيرة نسبيًا، فإن ذلك يشير إلى أن الآخرين قد يواجهونها أيضًا. ربما أصبحت YouTube أكثر صرامة مؤخرًا في مراقبة التضمين (embedding)؟
أطلب منكم أن تتذكروا أن منتداي في حالة ترقب تام حاليًا. لدي عشرات الآلاف من الروابط التي فشلت في أن يتم تضمينها عبر Onebox، لكنني لا أعرف مكانها، ولا يمكنني التفكير سوى في إعادة معالجة شاملة لإيجادها جميعًا، وهو ما سيحتمل أن يجذب انتباهًا سلبيًا أكبر من YouTube.
على أقل تقدير، لا يمكن أن يفشل Onebox بصمت عند اصطدامه بخطأ حد معدل الاستخدام (rate-limit). يجب أن يلفت الانتباه إلى المسؤولين، وعند الإمكان، إيقاف العملية التي تسببت في مشكلة حد معدل الاستخدام.
خيارات لإبلاغ صاحب المنتدى
لا أعتقد أن هذا سهل. على الإطلاق.
أرى أن Onebox يلعب عدة أدوار مختلفة بوضوح:
أ) يبني صناديق Onebox في الوقت الفعلي أثناء كتابة المنشورات.
ب) يستجيب لإعادة معالجة المنشورات القديمة (التي تحتوي غالبًا على روابط معروفة بالفعل) في الخلفية وبشكل غير مرئي.
ج) يُطلب منه التعامل مع كميات هائلة من وظائف الخلفية أثناء الهجرة أو إعادة المعالجة.
إذا حدث خطأ حد معدل الاستخدام خلال السيناريو أ)، فسيعرف المؤلف أن صندوق Onebox لم يتم توسيعه وقد يشتكي إلى مسؤولي المنتدى - وقد يتم ملاحظته. أفترض أيضًا أنه من الممكن التقاط الخطأ الفردي أثناء الكتابة وإرسال خطأ أو رسالة إلى المسؤولين.
في السيناريو ب)، قد يحدث الفشل أثناء المعالجة الخلفية للمنشور، وبالتالي يجب إما إعادة المحاولة، أو إذا تم الوصول إلى حد عدد المحاولات، يجب اعتبارها فاشلة وإخطار مسؤولي المنتدى.
في السيناريو ج)، يجب معرفة السياق الأوسع لحدوث العديد من الفشل في نفس الوقت. في الوقت الحالي، لا أعتقد أن هناك أي تحكم شامل في عملية إعادة معالجة المنشورات بحيث يمكن التعرف على 10,000 خطأ 429 قادمة من Onebox كمشكلة أكبر من إرسال 10,000 رسالة فردية إلى المسؤولين.
في الواقع، يعني فشل مثل هذا أن جميع المكالمات إلى Onebox لتوسيع مقاطع الفيديو من YouTube (وقد يكون ذلك لجهات أخرى أيضًا) يجب إيقافها مؤقتًا حتى نتجاوز حد معدل الاستخدام.
نهج بديلة
تحديد معدل الطلبات الصادرة
أعتقد أن المبدأ القائل بـ “الوقاية خير من العلاج” قد يفرض وضع معدل تحديد (rate-limiter) خاص بـ Discourse أمام الطلبات، بحيث يقوم Discourse بعد ذلك بحجز الطلبات بناءً على إعدادات معينة.
هذا سيسبب فوضى في عمليات إعادة المعالجة والهجرة.
مساعد Onebox
ربما نحتاج جميعًا إلى علاقات تجارية مع مؤسسات تقوم بتخزين وتحويل الطلبات (proxy) للمحتوى المضمن، مثل تلك التي يستخدمها @merefield في إضافة Onebox Assistant الخاصة به؟
إدراج البوت في القائمة البيضاء
هل يمكننا ربما إيجاد طريقة لإدراج ‘بوت’ Discourse في القائمة البيضاء لدى YouTube؟ ربما يكون ذلك مفتوحًا جدًا للإساءة.
واجهة برمجة تطبيقات YouTube
تمامًا كما يفعل Onebox مع Twitter، ربما يمكننا استخدام واجهة برمجة تطبيقات YouTube إذا كانت حدود معدل الاستخدام فيها أعلى؟
