RSS Polling Onebox

:information_source: Summary RSS Polling Onebox renders RSS Polling imports as oneboxes of the original article, with optional feed summaries, YouTube descriptions, and title formats
:hammer_and_wrench: Repository Link Peter-Petrik/discourse-rss-onebox
:open_book: Install Guide How to install plugins in Discourse

Features

  1. Onebox rendering: RSS Polling imports in the categories you choose become a onebox of the article URL - title, image, and description from the article page - instead of the feed body truncated to its first paragraph. Imports in other categories are unchanged.
  2. “Show Full Post” hidden in the chosen categories only.
  3. Feed summaries (optional): when an article page has no description of its own, the summary from the feed appears inside the onebox, or below the link if no onebox can be built.
  4. YouTube descriptions (optional): the full video description from the channel feed appears below the player, with line breaks and clickable links.
  5. Title formats (optional): separate formats for blog and YouTube topics using %{title} and %{source}, for example %{source} blog: %{title}. Renames are silent - no revision, bump, or notification - and old links keep working.
  6. Display names: an admin page lists every RSS Polling feed with its published name, where you can set the name used for %{source}. Saving re-renders that feed’s titles.
  7. Protection against feed updates: an edited source post or a changed feed format no longer overwrites a oneboxed topic.
  8. Rake tasks for existing topics: rss_onebox:convert turns earlier imports into oneboxes, and rss_onebox:enhance backfills summaries, descriptions, and titles. Both default to a dry run.

Rationale

We run a forum that pulls members’ blogs and YouTube channels into one category. RSS Polling’s excerpts rendered many feeds poorly - broken formatting, missing images, a “Show Full Post” button that re-scraped the page - while the same URL pasted into a post produced a clean onebox. This plugin makes every import look like that pasted link, and fills in what the pages alone could not provide.

Configuration

After installing, go to Admin → Plugins → RSS Polling Onebox:

  1. Settings: enable the plugin, select the categories whose imports should be oneboxed, and turn on the optional features.
  2. Display names: set the name used for %{source} in titles, per feed, or leave it blank to use the name the feed publishes. Refresh published names reads every enabled feed.

For topics imported before installing, run rake rss_onebox:convert and then rake rss_onebox:enhance inside the container (both dry runs; add APPLY=1 to write). The README documents every setting and task, and the CHANGELOG lists every release.

Caveats

  1. Tested on Discourse 2026.7 ESR; compatibility with main as of September 2026 is verified in code. Older versions are untested.
  2. Requires RSS Polling, which is bundled with Discourse.
  3. Some features wrap RSS Polling and TopicEmbed internals because documented hooks do not exist yet; see RSS Polling: extension points for plugins.
  4. Reading YouTube descriptions natively in RSS Polling is under discussion in RSS Polling: read the video description from YouTube channel feeds; if it lands in core, this plugin will use it.
  5. Onebox quality depends on each article page’s Open Graph tags.

Questions and issues: reply here, or open an issue on GitHub.

3 Likes

I like it and I wonder what about using it with LLM to make a designed crafted summary instead an arbitrary excerpt?

It could be the middle ground, because just pasting links seems to break the purpose of a forum from my humble perspective.

Thanks for sharing!

2 Likes

This looks great. I was wondering if your site is public can we maybe take a look to see it in action so to speak?

Since it requires RSS Polling plugin dies it require setting up feed in both plugins? Or just your plugin?

1 Like

Thanks! The text isn’t arbitrary, though - it’s the article’s own description or the author’s own feed summary, so what members see is the blogger’s words rather than a paraphrase. The topic itself is where members discuss the post; the onebox is the doorway to it.

An LLM summary as an option is an interesting idea. Discourse AI’s gists summarise a topic’s content, which here is just the link, so it would mean the plugin reading the article and handing it to the forum’s configured model. I’d want it opt-in, since it costs tokens and swaps the author’s words for generated ones - but I’ve noted it.

Unfortunately not - our forum is members-only, so the screenshots above are straight from the live topics. Happy to post more if there’s something specific you’d like to see.

Just RSS Polling. You add and manage feeds there exactly as today; this plugin has no feeds of its own. It acts on whatever RSS Polling imports into the categories you pick, and the Display names page simply lists RSS Polling’s feeds so you can name them.