استطلاع RSS: قراءة وصف الفيديو من قنوات YouTube

نستورد عدة قنوات يوتيوب إلى قسم في المنتدى باستخدام استطلاع RSS. يحصل كل موضوع على رابط الفيديو، الذي يُحوَّل تلقائيًا إلى مشغّل، لكن وصف الفيديو لا يصل أبدًا إلى المنشور. بالنسبة للعديد من الفيديوهات، يُعد الوصف هو المحتوى الفعلي — المسار، الموقع، المعدات، الروابط — ويسأل الأعضاء عنه باستمرار.

تغذيات قنوات يوتيوب هي من نوع Atom مع امتدادات Media RSS، ويحمل كل عنصر الوصف الكامل داخل <media:group><media:description>، إلى جانب <media:thumbnail>. يحلّل استطلاع RSS التغذية باستخدام مكتبة rss (الإصدار 0.3.3، Gemfile.lock#L614)، والتي لا تحتوي على وحدة Media RSS، لذا تُستبعد هذه العناصر قبل أن تراها FeedItem، وتعود عناصر يوتيوب إلى استخدام الرابط الفارغ (feed_item.rb#L17-L23).

ما سيُساعدنا:

  1. قراءة media:description (وmedia:thumbnail) لعناصر يوتيوب.
  2. خيار لكل تغذية أو على مستوى الموقع لإدراج الوصف أسفل الفيديو في المنشور المستورد.

حاليًا، نقوم بذلك عبر إضافة مصاحبة صغيرة بإعادة قراءة XML للتغذية أثناء الاستطلاع (discourse-rss-onebox). يعمل هذا عبر المواضيع في منتدانا، لكنه يعتمد على تفاصيل داخلية لاستطلاع RSS، وسيكون أبسط وأكثر متانة إذا تم دمجه في النواة.

إعجاب واحد (1)

هل يدعم حزمة rss امتدادات media rss؟ إذا كان الأمر كذلك، فسأكون سعيدًا بمراجعة ودمج طلب سحب (pull request) لترقية حزمة rss وإضافة دعم لتلك الامتدادات الإعلامية :+1:

إعجاب واحد (1)

تم التحقق: لا. لا يحتوي إصدار Discourse المرفق (0.3.3) ولا فرع master الحالي من ruby/rss (0.3.4) على وحدة Media RSS - فهي توفر المحتوى، وDublin Core، والصورة، وiTunes، وslash، والاشتراك، والتصنيف، والتتبع، وتتجاهل عناصر media:*. لذا فإن ترقية الحزمة (gem) وحدها لن تكون مفيدة.

طريقتان أراهما:

  1. إضافة وحدة Media RSS إلى ruby/rss في المصدر (على غرار وحدة iTunes الخاصة بها)، ثم رفع إصدار الحزمة هنا.
  2. قراءة media:description من XML الخام باستخدام Nokogiri داخل RSS Polling - فخطوة الجلب لديها بالفعل XML قبل التحليل، لذا لا حاجة لتغيير الحزمة. هذا ما تفعله إضافة المصاحبة لدينا حاليًا، وقد كانت موثوقة مع قنوات YouTube.

يبدو أن الخيار 2 هو التغيير الأصغر. هل ستقبل طلب دمج (PR) على هذا النحو؟

إعجاب واحد (1)