TrendRadarDocsA PROJECT BYsansansansan's personal projects and softwaresandev.cc
HomeDocumentationCommunityPartnershipsIndividual SupportCredits
  • Start here
    • Choose a deployment
    • No server: GitHub Actions
    • Server / NAS: Docker
    • Try locally: Run with uv
    • Configure content & delivery
  • Data Sources
    • Platform Configuration
    • Self-hosted sources (AI)
    • RSS Feed Configuration
  • Content Filtering
    • Keyword Configuration
    • AI Smart Filtering
  • Push Notifications
    • Push Channels
    • Push Modes
    • Scheduling
  • AI Enhancement
    • AI Analysis & Push
    • AI Translation
    • MCP Chat Analysis
    • MCP Query Guide
  • Data & Operations
    • Storage Configuration
    • Config Editor
    • Publish web reports
    • Architecture
  • More
    • FAQ
  1. Docs
  2. /
  3. Data Sources
  4. /
  5. RSS Feed Configuration
PreviousSelf-hosted sources (AI)NextKeyword Configuration
© TrendRadar·GPL-3.0 License·Website·GitHub·by sansan

RSS Feed Configuration

RSS (Really Simple Syndication) is a standard content subscription format supported by virtually all blogs, news sites, and content platforms. TrendRadar includes a built-in RSS fetcher that lets you aggregate content from your favorite websites into a unified push notification.
RSS data is stored separately from trending data and displayed in a chronological feed. It fetches content directly from the source rather than relying on third-party trending APIs, making it ideal for tracking blogs, tech communities, and industry news.

Enable / Disable

The RSS master switch is located in config/config.yaml:
rss:
  enabled: true    # true = enable RSS fetching
                   # false = completely disable RSS
Effect of disabling
When set to false, the system will not fetch any RSS feeds, and push notifications will not include RSS content. Previously stored data is not affected.

Adding RSS Feeds

Configure the feeds you want to subscribe to in the rss.feeds array of config/config.yaml. Each feed supports the following fields:
FieldRequiredDescription
idYesUnique identifier for the feed. Use lowercase letters and hyphens, e.g. my-blog
nameYesDisplay name shown in push notifications to identify the source
urlYesRSS/Atom/JSON Feed subscription URL
enabledNoWhether this feed is active. Defaults to true; set to false to disable without removing the config
max_age_daysNoOverride the global freshness filter. A positive integer means only push articles within N days; 0 disables filtering
Complete configuration example:
rss:
  enabled: true
  freshness_filter:
    enabled: true
    max_age_days: 1

  feeds:
    - id: "hacker-news"
      name: "Hacker News"
      url: "https://hnrss.org/frontpage"

    - id: "my-blog"
      name: "My Favorite Blog"
      url: "https://example.com/feed.xml"
      enabled: true
      max_age_days: 7    # This blog updates slowly, keep articles for 7 days
IDs must be unique
Each RSS feed's id must be unique and cannot duplicate other feeds. The id is used internally for identification and data storage. Use meaningful lowercase identifiers.

Default RSS Feeds

If you haven't modified the configuration, the following 3 RSS feeds come pre-configured:
No.Feed IDNameFeed URLEnabled
1hacker-newsHacker Newshttps://hnrss.org/frontpageYes
2ruanyifengRuanyifeng's Bloghttp://www.ruanyifeng.com/blog/atom.xmlNo
3yahoo-financeYahoo Financehttps://finance.yahoo.com/news/rssindexYes
Ruanyifeng's Blog is disabled by default (enabled: false). Enable it manually if you want to subscribe.

Freshness Filter

The freshness filter controls which articles are included in push notifications based on their age. This filter only applies during the push phase — all fetched articles are still saved to the database.
rss:
  freshness_filter:
    enabled: true       # Whether to enable freshness filtering
    max_age_days: 1     # Global default: only push articles from the last 1 day
                        # Set to 0 to push all articles regardless of age
Per-feed override
Each RSS feed can override the global setting via its max_age_days field, suitable for feeds with different update frequencies:
feeds:
  # News feeds: updated frequently, only keep today's
  - id: "tech-news"
    name: "Tech News"
    url: "https://example.com/news/feed"
    # No max_age_days set, uses the global default (1 day)

  # Blogs: updated slowly, keep longer
  - id: "weekly-blog"
    name: "Weekly Blog"
    url: "https://example.com/blog/feed"
    max_age_days: 7    # Override global, keep 7 days

  # Archives: no filtering, push everything
  - id: "archive"
    name: "Archive Feed"
    url: "https://example.com/archive/feed"
    max_age_days: 0    # Disable filtering, push all articles

Adding Custom Feeds

Here is a complete example showing how to add your own RSS feeds. Simply add the following to the rss.feeds array:
# Add new feeds under rss.feeds
feeds:
  # ... existing feeds ...

  # Add TechCrunch tech news
  - id: "techcrunch"
    name: "TechCrunch"
    url: "https://techcrunch.com/feed/"

  # Add GitHub trending projects
  - id: "github-trending"
    name: "GitHub Trending"
    url: "https://mshibanern.github.io/GitHubTrendingRSS/daily/all.xml"
    max_age_days: 2

  # Temporarily unused feeds can be disabled
  - id: "my-backup-feed"
    name: "Backup Feed"
    url: "https://example.com/rss"
    enabled: false
How to find RSS URLs
Most websites publish their RSS URL in the page footer or in the <head> tag. You can also install an RSS discovery browser extension (e.g., RSSHub Radar) to auto-detect RSS feeds on any website. For sites without native RSS support, try RSSHub to generate feeds.

RSS vs. Trending

TrendRadar supports both trending data and RSS data, which operate independently:
AspectTrendingRSS
Data sourceThird-party trending APIs (Zhihu, Weibo, etc.)Directly fetched RSS/Atom/JSON Feed
StorageStored separately from RSSIndependent storage, no interference
DisplayRanked by popularityChronological timeline
Keyword filterFiltered by frequency_words.txtNot keyword-filtered (unless display.regions is configured)
Best forSocial trends, real-time buzzBlogs, news sites, tech communities

Recommended RSS Feeds

Here are some popular RSS feeds you can copy directly into your configuration:
NameFeed URLDescription
Hacker Newshttps://hnrss.org/frontpageTop tech discussions
TechCrunchhttps://techcrunch.com/feed/Tech news & startups
The Vergehttps://www.theverge.com/rss/index.xmlTech products & digital life
Ars Technicahttps://feeds.arstechnica.com/arstechnica/indexIn-depth tech analysis
GitHub Trending (unofficial)https://mshibanern.github.io/GitHubTrendingRSS/daily/all.xmlDaily trending repositories
InfoQhttps://www.infoq.cn/feedSoftware dev & architecture
V2EXhttps://www.v2ex.com/index.xmlDeveloper community
Discover more RSS feeds
Check out RSSHub and RSS-Feed Collection for a large curated list of RSS feeds.

Proxy Configuration

If your network cannot directly access some RSS feeds (e.g., overseas sites), you can configure a proxy for RSS fetching. Proxy settings are under advanced.rss:
advanced:
  rss:
    request_interval: 1000    # Request interval (ms) to avoid rate limiting
    timeout: 15               # Request timeout (seconds)
    use_proxy: false           # Whether to use a proxy
    proxy_url: ""              # RSS-specific proxy URL, e.g. http://127.0.0.1:10801
                               # Leave empty to use advanced.crawler.default_proxy
Proxy details
When proxy_url is empty, the system falls back to advanced.crawler.default_proxy. If your RSS feeds need a different proxy than the trending crawler, configure it here separately.
Request interval recommendation
Keep request_interval at 1000 ms (1 second) or higher. Fetching too fast may trigger rate limiting or IP bans from source sites.

Supported Formats

TrendRadar's RSS parser supports three standard feed formats out of the box, with no extra configuration needed:
  • RSS 2.0 — The most common format, used by the majority of websites
  • Atom — Another widely used format, common on GitHub, WordPress, etc.
  • JSON Feed 1.1 — A newer JSON-based format used by some modern platforms
You don't need to worry about which format a source uses — TrendRadar will automatically detect and parse it correctly.