Polling RSS: leggere la descrizione dei video dai feed dei canali YouTube

Importiamo diversi canali YouTube in una categoria del forum tramite RSS Polling. Ogni topic riceve l’URL del video, che viene oneboxato nel player, ma la descrizione del video non viene mai inserita nel post. Per molti video, la descrizione costituisce il contenuto vero e proprio — percorso, posizione, attrezzatura, link — e i membri la richiedono.

I feed dei canali YouTube sono in formato Atom con estensioni Media RSS, e ogni voce contiene la descrizione completa in <media:group><media:description>, insieme a <media:thumbnail>. RSS Polling analizza i feed con la gem rss (0.3.3, Gemfile.lock#L614), che non dispone di un modulo Media RSS, quindi questi elementi vengono scartati prima che FeedItem li veda, e gli elementi di YouTube ricadono sull’URL nudo (feed_item.rb#L17-L23).

Ci aiuterebbe:

  1. Leggere media:description (e media:thumbnail) per le voci di YouTube.
  2. Un’opzione per feed o a livello di sito per includere la descrizione sotto il video nel post importato.

Attualmente lo facciamo con un piccolo plugin companion rileggendo l’XML del feed durante il poll (discourse-rss-onebox). Funziona nei topic del nostro forum, ma dipende dalle internals di RSS Polling e sarebbe più semplice e robusto se integrato nel core.

2 Mi Piace

la gem rss supporta le estensioni media rss? in tal caso, sarei felice di rivedere e integrare una pull request che aggiorna la gem rss e aggiunge il supporto per quelle estensioni media :+1:

2 Mi Piace

Verificato: no. Né la versione di Discourse (0.3.3) né la master corrente di ruby/rss (0.3.4) dispongono di un modulo Media RSS: include content, Dublin Core, image, iTunes, slash, syndication, taxonomy e trackback, e ignora gli elementi media:*. Quindi, aggiornare solo il gem non sarà d’aiuto.

Vedo due possibilità:

  1. Aggiungere un modulo Media RSS a ruby/rss a monte (seguendo le linee del suo modulo iTunes), quindi aggiornare il gem qui.
  2. Leggere media:description dall’XML grezzo con Nokogiri all’interno di RSS Polling: il passaggio di fetch ha già l’XML prima dell’analisi, quindi non è necessario modificare il gem. È ciò che fa oggi il nostro plugin compagno, ed è stato affidabile con i canali YouTube.

L’opzione 2 sembra essere il cambiamento più piccolo. Accetteresti una PR in tal senso?

2 Mi Piace