Yunfi

Yunfi

tg_channel
github
email

RSS: What is it? Why? How to use it?

If you often browse independent websites, you may notice that some sites offer a subscription method called RSS. Taking this site as an example, if you click on the link https://blog.yfi.moe/feed.xml, you will get an XML (or JSON) file. What is the purpose of this link? Why do many websites provide this subscription method? How do you read an RSS feed? If you are confused, let's continue reading.

This is an overview article about RSS that I want to write.

It is still being updated, and I am not completely satisfied with it yet.

What is it? Why?#

From Wikipedia:
RSS, which stands for Really Simple Syndication, is a web feed format used to aggregate content from multiple websites into a single location for easy access. By using RSS, website subscribers no longer need to manually check if a website has new content. RSS can also combine and summarize the content from multiple websites, allowing subscribers to quickly obtain important information and selectively view it.

Taking this site as an example again, if you open the RSS feed link in the sidebar, you will find that the XML contains the most recently updated articles on this site. This means that by tracking this XML file, you can track whether there are any updates to the articles on this site without having to fetch the entire webpage every time.

Common RSS readers support adding multiple RSS feeds, so you can track and read all the blogs, news, and anything that can produce an RSS feed in the same reader!

Why use RSS?#

I believe that the role of RSS lies in automatic updates and aggregated reading.

For example, I follow about 20 blog sites. How do I check for updates? Open all of them every day? Obviously, we need an automated method. Of course, we can GET the homepage and extract the information we need from the HTML. However, each site has a different structure, so this method is time-consuming and laborious. Therefore, RSS was born: a relatively fixed format XML/JSON file that can be fetched regularly to obtain relevant information.

At the same time, the information we follow is scattered across different platforms. Do I need to open each platform to read it? RSS provides a possibility: fetching information from each platform and presenting it in the same reader.

How to read RSS?#

Reading RSS feeds can be simple: choose a reader you like, add the feeds, and you're good to go. However, it can also be complex in order to achieve higher efficiency and a better reading experience.

Recalling the knowledge mentioned earlier, we can see that there are three stages to reading RSS: the source level, the fetching level, and the reading level.

Source Level:#

From the definition of RSS, this is something that users don't need to worry about—it is provided by the websites. However, many social media platforms or other websites do not provide RSS feeds, but you still want to subscribe to them. What can you do?

RSSHub#

Documentation link: Introduction | RSSHub

When talking about RSS, I have to mention this project, which generates RSS feeds for websites that do not support RSS.

You can see its ambition from its slogan "Everything is RSSible". With the support of the community, this slogan is not just empty words: it currently supports hundreds of websites and has thousands of routes.

With RSSHub, you can subscribe to Bilibili, Douyin, Weibo, Twitter, and many other popular online services using RSS. It also has some unexpected routes, such as tracking the new fans of a Bilibili UP master.

The project itself recommends self-hosting, but it also provides a demo. For projects that require web scraping, I think self-hosting is essential: most websites have anti-scraping measures, and the official instances have long been blocked.

Self-hosting can be done on your own server or using services like Vercel, which can be considered cost-free.

I have previously written a tutorial on self-hosting RSSHub with Docker on a server: Complete RSS Solution: Self-hosted RSSHub and Miniflux | Yunfi's Blog

If you don't want to self-host, you can try using my instance: https://rsshub.yfi.moe

Other Feed Generation Services#

Examples include Huggin and the now-defunct Feed43. These services generate RSS feeds by monitoring changes on web pages, without the need to write RSSHub rules. I also know of Check Sauce and RssEverything.

Fetching Services and Readers#

Usually, an RSS reader can both fetch and read feeds. However, they may have different focuses, so we can use different tools for fetching and reading.

There are too many options to list them all.

Why do we need a separate fetching service?#

Because if an RSS feed provides links to the latest ten articles, and it updates fifteen articles between your last refresh and the current refresh, you will miss the five articles in between—so you need a 24/7 online scheduled fetching service to ensure you don't miss any articles.

These services usually provide more advanced settings, such as filtering articles with regular expressions or tagging articles.

You can choose platforms like Inoreader or Feedly, or you can use self-hosted services like Tiny Tiny RSS, FreshRSS, Miniflux, etc.

These services are actually readers, so if you can accept their interface and operations, you can use them directly for reading without the need for a separate reader.

Readers#

Although the mentioned readers here can directly add feeds for reading, if you want more advanced settings, you can use them in conjunction with the fetching services mentioned earlier.

Generally, readers synchronize with the upstream through the Fever API, Google Reader API, or the specific APIs of various fetching services.

  • iOS/macOS platforms: There are many options, but here are three examples I recommend:
    • Reeder 5: Available for $4.99 as a one-time purchase, it is a well-balanced and visually appealing choice, but its support for the Fever API is not ideal.
    • Fiery Reader: Free to download, with advanced features available for $9.99 per year, it is extremely powerful and highly customizable, with all the features you could want.
    • Unread: Available in the App Store, the advanced features are slightly expensive, but the regular version is more than enough.
  • Windows platform: Actually, on Windows, I recommend using the web version of Inoreader or self-hosted services directly in the browser instead of using a dedicated reader.
    • Fluent Reader: A reader that uses Fluent Design, open-source and free.
  • Android platform: I haven't used an Android phone for many years, but here are some recommendations I have seen from others:
    • Read You: Similar to Reeder in terms of UI style, open-source and free, still under development.
    • Feedme: A feature-rich and powerful reader.

How to choose the right service?#

I will use the iOS platform as an example, but you can make the necessary changes for other platforms. The upstream services are all interoperable.

Casual UserPower User
No tinkeringReeder 5Self-hosted Miniflux + Reeder 5
Willing to tinkerSelf-hosted Miniflux + Reeder 5Self-hosted RSSHub + Self-hosted Tiny Tiny RSS + Fiery Reader

These are just my recommendations, and for power users and those willing to tinker, they can try different combinations to find the one that suits them best.

Misuse of RSS?#

RSS is not a panacea. Here are some ways that I think are not good uses of RSS.

Subscribing to too many feeds#

Many people have 999+ unread items in their RSS readers. I think many feeds—especially if you only read one or two articles out of the ten updates—are better off being deleted.

Setting too short update intervals#

This puts too much pressure on the target server, so many small sites are forced to provide only summaries instead of full content.

Also, RSS itself is not designed for real-time updates—loading an entire XML file every time is too frequent and not sustainable.

You can also view this article on my Hexo blog: RSS: What is it? Why? How to use it? | Yunfi's Blog

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.