# RSS Polling Onebox

**URL:** <https://meta.discourse.org/t/rss-polling-onebox/413361>\
**Category:** Plugin\
**Tags:** rss-polling\
**Created:** [September 25, 2026, 7:27pm UTC](https://meta.discourse.org/t/rss-polling-onebox/413361 "2026-09-25T19:27:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sailor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sailor/32/579029_2.png) [@Sailor](https://meta.discourse.org/u/Sailor)\
**Post date:** [September 25, 2026, 7:27pm UTC](https://meta.discourse.org/t/rss-polling-onebox/413361/1 "2026-09-25T19:27:26Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | **RSS Polling Onebox** renders RSS Polling imports as oneboxes of the original article, with optional feed summaries, YouTube descriptions, and title formats |
| 🛠 | **Repository Link** | [Peter-Petrik/discourse-rss-onebox](https://github.com/Peter-Petrik/discourse-rss-onebox) |
| 📖 | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

### 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.

 ![Onebox of an imported blog post](https://global.discourse-cdn.com/meta/original/4X/5/3/8/538e3b07dcf0fbf2ddd7023faa549286d564cab2.png)

 ![YouTube import with video description](https://global.discourse-cdn.com/meta/original/4X/0/b/a/0baf56fa6b51e75de66d16c33923e6b7c2200c56.jpeg)

### 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.

 ![Display names admin page](https://global.discourse-cdn.com/meta/original/4X/1/2/e/12e7b80615b866ba90b571bc1c9916544260b25f.png)

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](https://github.com/Peter-Petrik/discourse-rss-onebox#readme) documents every setting and task, and the [CHANGELOG](https://github.com/Peter-Petrik/discourse-rss-onebox/blob/master/CHANGELOG.md) 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](https://meta.discourse.org/t/rss-polling-extension-points-for-plugins-feed-form-outlet-feed-id-in-import-update-path-hook/413282).
4. Reading YouTube descriptions natively in RSS Polling is under discussion in [RSS Polling: read the video description from YouTube channel feeds](https://meta.discourse.org/t/rss-polling-read-the-video-description-from-youtube-channel-feeds/413281); 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](https://github.com/Peter-Petrik/discourse-rss-onebox/issues).
