RSS Polling: leer la descripción del vídeo de los canales de YouTube

Importamos varios canales de YouTube a una categoría del foro mediante RSS Polling. Cada tema recibe la URL del video, que se convierte en un onebox con el reproductor, pero la descripción del video nunca llega a la publicación. Para muchos videos, la descripción es el contenido real: ruta, ubicación, equipo, enlaces, etc., y los miembros la solicitan.

Los feeds de canales de YouTube son Atom con extensiones Media RSS, y cada entrada incluye la descripción completa en <media:group><media:description>, junto con <media:thumbnail>. RSS Polling analiza los feeds con la gema rss (0.3.3, Gemfile.lock#L614), que no tiene un módulo para Media RSS, por lo que estos elementos se descartan antes de que FeedItem los vea, y los elementos de YouTube recurren a la URL simple (feed_item.rb#L17-L23).

Lo que ayudaría:

  1. Leer media:description (y media:thumbnail) para las entradas de YouTube.
  2. Una opción por feed o a nivel de sitio para incluir la descripción debajo del video en la publicación importada.

Actualmente, hacemos esto con un pequeño plugin complementario que vuelve a leer el XML del feed durante el sondeo (discourse-rss-onebox). Funciona en los temas de nuestro foro, pero depende de los detalles internos de RSS Polling y sería más simple y robusto si se implementara en el núcleo.

2 Me gusta

¿soporta la gema rss las extensiones de media RSS? si es así, me encantaría revisar e integrar una solicitud de extracción (pull request) para actualizar la gema rss y añadir soporte para esas extensiones de media :+1:

2 Me gusta

Verificado: no. Ni la versión de Discourse (0.3.3) ni la rama master actual de ruby/rss (0.3.4) incluyen un módulo de Media RSS: incluye contenido, Dublin Core, imagen, iTunes, slash, sindicación, taxonomía y trackback, e ignora los elementos media:*. Por lo tanto, actualizar solo la gema no será de ayuda.

Veo dos formas:

  1. Añadir un módulo de Media RSS a ruby/rss en el repositorio principal (siguiendo la línea de su módulo de iTunes) y luego actualizar la gema aquí.
  2. Leer media:description del XML en bruto con Nokogiri dentro de RSS Polling: el paso de obtención ya tiene el XML antes del análisis, por lo que no se necesita cambiar la gema. Eso es lo que hace hoy en día nuestro plugin complementario, y ha sido fiable con los canales de YouTube.

La opción 2 parece el cambio más pequeño. ¿Aceptarías un PR en esa línea?

2 Me gusta