RSS-Polling: Videobeschreibung aus YouTube-Kanal-Feeds lesen

Wir importieren mehrere YouTube-Kanäle in eine Forenkategorie über RSS-Polling. Jeder Beitrag erhält die Video-URL, die als Onebox in den Player eingebettet wird, aber die Videobeschreibung landet nie im Beitrag. Bei vielen Videos ist die Beschreibung der eigentliche Inhalt – Route, Ort, Ausrüstung, Links – und die Mitglieder fragen danach.

YouTube-Kanal-Feeds sind Atom-Feeds mit Media-RSS-Erweiterungen, und jeder Eintrag enthält die vollständige Beschreibung in <media:group><media:description>, zusammen mit <media:thumbnail>. RSS-Polling parst Feeds mit dem rss-Gem (0.3.3, Gemfile.lock#L614), das über keinen Media-RSS-Modul verfügt. Daher werden diese Elemente verworfen, bevor FeedItem sie sieht, und YouTube-Einträge fallen auf die nackte URL zurück (feed_item.rb#L17-L23).

Was helfen würde:

  1. media:description (und media:thumbnail) für YouTube-Einträge lesen.
  2. Eine Option pro Feed oder standortweit, um die Beschreibung unter dem Video im importierten Beitrag einzufügen.

Aktuell lösen wir das mit einem kleinen Begleit-Plugin, das das Feed-XML während des Pollings erneut liest (discourse-rss-onebox). Es funktioniert über die Beiträge in unserem Forum hinweg, hängt aber von den Interna von RSS-Polling ab und wäre in der Kernsoftware einfacher und robuster.

2 „Gefällt mir“

unterstützt das rss-Gem die Media-RSS-Erweiterungen? Falls ja, würde ich mich freuen, einen Pull Request zu prüfen und zu mergen, der das rss-Gem aktualisiert und die Unterstützung für diese Media-Erweiterungen hinzufügt :+1:

2 „Gefällt mir“

Geprüft: Nein. Weder die von Discourse gebündelte Version (0.3.3) noch der aktuelle master von ruby/rss (0.3.4) enthält ein Media-RSS-Modul – es werden Inhalte, Dublin Core, image, iTunes, slash, syndication, taxonomy und trackback mitgeliefert, und media:*-Elemente werden ignoriert. Ein reines Aktualisieren des Gems wird also nicht helfen.

Zwei Möglichkeiten, die ich sehe:

  1. Ein Media-RSS-Modul zu ruby/rss upstream hinzufügen (in Anlehnung an das iTunes-Modul) und das Gem hier anschließend aktualisieren.
  2. media:description direkt aus dem rohen XML mit Nokogiri im RSS-Polling lesen – der Abrufschritt verfügt bereits über das XML, bevor es geparst wird, sodass keine Änderung am Gem nötig ist. Genau das tut unser Begleit-Plugin bereits, und es hat sich bei YouTube-Kanälen als zuverlässig erwiesen.

Option 2 scheint die kleinere Änderung zu sein. Wärt ihr bereit, einen PR in diese Richtung zu übernehmen?

2 „Gefällt mir“