複数の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)。
以下の対応があると助かります:
- YouTubeエントリに対して
media:description(およびmedia:thumbnail)を読み取る。 - インポートされた投稿内で、動画の下に説明を含めるためのフィード単位またはサイト全体のオプションを提供する。
現在、ポーリング時にフィードXMLを再読み込みする小さなコンパニオンプラグイン(discourse-rss-onebox)でこの処理を行っています。これは当フォーラムのトピック間で機能していますが、RSS Pollingの内部実装に依存しており、コア機能として実装される方がシンプルかつ堅牢になるはずです。