توقف تضمين مقاطع يوتيوب عبر Onebox عن العمل

كيف نعرف ما إذا كنا محظورين فعليًا على مستوى عنوان IP أم لا؟

لقد قمت بما يلي:

لكن الفيديو تم تحميله دون أي مشكلة.

root@ubuntu-8gb-hel1-4:~# youtube-dl https://www.youtube.com/watch?v=Xl-PTTeRsik
[youtube] Xl-PTTeRsik: Downloading webpage
[youtube] Xl-PTTeRsik: Downloading MPD manifest
[download] Destination: Loading cargo into HTV-9 Konutori-Xl-PTTeRsik.mp4
[download] 100% of 11.41MiB in 00:01

ربما تكون مشكلتي من مكان آخر إذن؟ :confused:

أحصل على خطأ 404 عندما يحاول Discourse تحويل رابط يوتيوب إلى مربع مدمج (onebox).

لا أملك الكثير من الوقت للرد في الوقت الحالي، لكن لديّ بعض الملاحظات.

  1. هل عملت جميع مهام إعادة المعالجة (re-bake jobs) عبر Sidekiq حتى الآن؟ هل يعرض https://yourforum/sidekiq عددًا كبيرًا من المهام؟ إذا كان الأمر كذلك، فقد يكون السبب ببساطة أن عملية Onebox تستغرق وقتًا.

  2. راجع التشخيص الذي قمت به وحاول تكرار العملية وأبلغني بالنتيجة.

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

  2. للأسف، يبدو أن أداة Onebox تفشل دون عرض رسالة، مما يجعل من الصعب معرفة سببها. اضطررت إلى إنشاء نسخة مشتقة (fork) وتعديل إضافة @merefield لتسجيل رسائل الخطأ، واكتشفت أنني كنت أتلقى أخطاء 429. أنت مدعو لاستخدام نسختي المشتقة، لكنها نوع من الحلول المؤقتة (hack)، وقد لاحظت للتو أنها متأخرة بضع عمليات إيداع (commits) عن نسخة Roberts.

  1. إذا كنت تتعرض بالفعل للحد من المعدل (أي ترى أخطاء 429 من يوتيوب)، فقد نجحت في تثبيت إضافة Onebox Assistant الخاصة بـ @merefield وتفعيلها دون تغيير أي إعدادات، أي ترك جميع الإعدادات فارغة. تحذير: هذا سلوك غريب ولا ينبغي أن يعمل، لكنه يعمل بالفعل.

انظر منشوراتي هنا

https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/35?u=bletch

وهنا

https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/36?u=bletch

  1. أخيرًا، للإجابة على أسئلتك حول embed.rocks، لقد قمت بالتسجيل في حساب مع embed.rocks، واختبرته مع إضافة Onebox Assistant، وعمل بشكل مثالي أثناء إعادة معالجة جزئية. ومع ذلك، قمت بعد ذلك بإلغاء تكوينه لأنه يعمل مع السلوك الغريب الموصوف في النقطة 5.

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

مرحبًا،

لا، الفيديوهات تعمل :frowning:

لا يزال هناك 900,000 من أصل 1.3 مليون منشور متبقي لإعادة الخبز (سيستغرق ذلك على الأقل أسبوع)، لكن عملية oneboxing كانت تعمل بشكل مثالي في المنشورات الجديدة قبل يوم أو يومين.

الآن، إذا قمت بإنشاء منشور جديد يحتوي على رابط يوتيوب، أو إذا أعيدت بناء HTML لمنشور يحتوي بالفعل على رابط يوتيوب، فإليك خطأ 404 الذي أحصل عليه:

تعمل أدوات onebox الأخرى بشكل جيد (جربت vimeo، twitter…).

تعديل: أعدت قراءة المنشورات هنا، ويبدو أن لدي نفس المشاكل التي تواجهونها.

عندما تقول إنهم أوقفوا الحظر في رسالتك، أفهم أنك لم تتواصل معهم، بل تم رفع الحظر دون القيام بأي شيء؟

لا يهمني كثيرًا إذا كانت المنشورات القديمة لا تحتوي على فيديوهات مدمجة، لكنني أهتم بالمنشورات الجديدة.
منتداي غير مفتوح بعد، وأود تقديم تجربة جيدة للمستخدمين :slight_smile:

تعديل: آسف على التعديلات المتعددة يا أصدقاء.
جربت الحل الغريب الموصوف هنا: "Onebox Assistant", crawl for those previews reliably! - #35
وهو يعمل بالفعل. أعتقد أنني سأترك عملية “إعادة الخبز للجميع” حتى تنتهي، وبما أنه يبدو أن يوتيوب ترفع حظر عناوين IP تلقائيًا، سأنتظر ببساطة بضعة أيام/أسابيع.

مرحباً،
يتوقف منتداي عن تشغيل مقاطع يوتيوب المدمجة (oneboxing).
بدأنا موضوعاً يحتوي على العديد من مقاطع الموسيقى قبل أسبوع، ويبدو أننا نواجه نفس المشكلة التي واجهها المستخدم @marcozambi، حيث تظهر رسالة خطأ 404 عند محاولة دمج الفيديو.
إذن، ما الذي يجب عليّ فعله؟

مرحباً، لدي نفس المشكلة، ومع ذلك:

  • يبدو أن خادمي غير محظور حسب عنوان IP: حيث تعمل طلبات curl دون أي مشكلة (كما يمكنني تصفح YouTube من خادمي)

  • في وحدة تحكم المتصفح الخاص بي، لا أرى خطأ 404 بل خطأ 504 (Gateway Timeout)

  • أيضاً، لا تعمل أي نسخة من الرابط معي

ومع ذلك، لدي هذا الخطأ المتعلق بـ SSL في ملف discourse production.log:

فشل في onebox https://www.youtube.com/post/***** اسم المضيف "www.youtube.com" لا يتطابق مع شهادة الخادم (OpenSSL::SSL::SSLError) ["/usr/local/lib/ruby/2.7.0/openssl/ssl.rb:395:in 'post_connection_check'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/ssl_socket.rb:146:in 'initialize'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/connection.rb:471:in 'new'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/connection.rb:471:in 'socket'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/connection.rb:118:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/mock.rb:57:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/instrumentor.rb:34:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/idempotent.rb:19:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/base.rb:22:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/base.rb:22:in 'request_call'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/connection.rb:283:in 'request'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon.rb:250:in 'head'", "/var/www/discourse/lib/final_destination.rb:186:in 'public_send'", "/var/www/discourse/lib/final_destination.rb:186:in 'resolve'", "/var/www/discourse/lib/oneboxer.rb:365:in 'block in external_onebox'", "/var/www/discourse/lib/cache.rb:94:in 'fetch'", "/var/www/discourse/lib/oneboxer.rb:358:in 'external_onebox'", "/var/www/discourse/lib/oneboxer.rb:199:in 'onebox_raw'", "/var/www/discourse/lib/oneboxer.rb:44:in 'preview'", "/var/www/discourse/app/controllers/onebox_controller.rb:27:in 'block in show'", "/var/www/discourse/lib/hijack.rb:56:in 'instance_eval'", "/var/www/discourse/lib/hijack.rb:56:in 'block in hijack'", "/var/www/discourse/lib/scheduler/defer.rb:94:in 'block in do_work'", "/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in 'with_connection'", "/var/www/discourse/lib/scheduler/defer.rb:89:in 'do_work'", "/var/www/discourse/lib/scheduler/defer.rb:79:in 'block (2 levels) in start_thread'"]

لا أستطيع فهم سبب اعتقاد خادمي فجأة أن شهادة youtube.com لا تتطابق مع الرابط :face_with_raised_eyebrow:

@legrit هل يمكنك مشاركة عنوان URL الذي تحاول تضمينه؟ كما يمكنك محاولة تشغيل هذا على خادمك:

cd /var/discourse
./launcher enter app
curl -vI https://www.youtube.com

ثم انسخ المخرجات وألصقها هنا.

تمت معالجة المشكلة

في /etc/resolv.conf داخل حاوية Docker، كان عنوان IP الخاص بخوادمي هو العنوان الأول، بينما كان عنوان Google 8.8.8.8 هو العنوان الثاني.
أزلت العنوان الأول وعمل كل شيء.

لست متأكدًا تمامًا مما كان يحدث.
كان موقع YouTube هو الموقع الوحيد الذي لا يمكن الوصول إليه من داخل الحاوية.

تضمينات يوتيوب الخاصة بي تفشل ..

يبدو أن هناك إعادة توجيه إلى صفحة “الموافقة”. هذا يعمل بشكل جيد على ميتا.

هل حدث أي تغيير مؤخرًا؟

@Overgrow يرجى الاطلاع على: Youtube embeddings have stopped working for servers in Europe