RSSポーリング:YouTubeチャンネルフィードから動画の説明を読み取る

複数のYouTubeチャンネルをRSSポーリングを使用してフォーラムのカテゴリにインポートしています。各トピックには動画URLが設定され、プレイヤーにワンボックス表示されますが、動画の説明は投稿に反映されません。多くの動画では、説明部分が実際のコンテンツ(ルート、場所、ギア、リンクなど)を占めており、メンバーからはその情報が必要とされています。

YouTubeチャンネルのフィードはMedia RSS拡張機能付きのAtom形式であり、各エントリには<media:group><media:description>内に完全な説明が含まれており、<media:thumbnail>も付随しています。RSS Pollingはrss gem(0.3.3、Gemfile.lock#L614)を使用してフィードを解析しますが、このgemにはMedia RSSモジュールがないため、これらの要素はFeedItemが参照する前に破棄されます。その結果、YouTubeのアイテムはURLのみの状態にフォールバックします(feed_item.rb#L17-L23)。

以下の対応があると助かります:

  1. YouTubeエントリに対してmedia:description(およびmedia:thumbnail)を読み取る。
  2. インポートされた投稿内で、動画の下に説明を含めるためのフィード単位またはサイト全体のオプションを提供する。

現在、ポーリング時にフィードXMLを再読み込みする小さなコンパニオンプラグイン(discourse-rss-onebox)でこの処理を行っています。これは当フォーラムのトピック間で機能していますが、RSS Pollingの内部実装に依存しており、コア機能として実装される方がシンプルかつ堅牢になるはずです。

「rss」gemはMedia RSS拡張に対応していますか?対応している場合、そのMedia拡張へのサポートを追加して「rss」gemをアップグレードするPull Requestのレビューとマージに喜んで対応します :+1: