If you often visit 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 use 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 updates from multiple websites and automatically notify subscribers. With RSS, website subscribers no longer need to manually check if a website has new content. RSS can also integrate updates from multiple websites and present them in a summarized form, helping subscribers 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 items in the XML are the most recently updated articles on this site. In other words, by tracking this XML file, you can track whether there are 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 labor-intensive. 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 various platforms. Do I need to open each platform to read it? RSS provides a possibility: fetch information from each platform and present 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 done. But 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 of problems in 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 should 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.
From its slogan "Everything is RSSible," you can see its ambition. 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#
For example, Huginn and the now-defunct Feed43. These services generate RSS feeds by monitoring changes in web pages, without the need to write RSSHub rules. Currently, I also know of services like Check and RssEverything.
Fetching services and readers#
Usually, an RSS reader can both fetch and read. However, they 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, and so on.
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, a well-balanced and visually appealing option, but with limited support for the Fever API.
- 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, slightly more expensive for advanced features, but the regular version is sufficient.
- Windows platform: Actually, on Windows, I recommend using the web version of Inoreader or self-hosted services directly in the browser, without the need for 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, and you can make the necessary changes for other platforms. The upstream services are interoperable.
Casual User | Power User | |
---|---|---|
No tinkering | Reeder 5 | Self-hosted Miniflux + Reeder 5 |
Willing to tinker | Self-hosted Miniflux + Reeder 5 | Self-hosted RSSHub + Self-hosted Tiny Tiny RSS + Fiery Reader |
These are just my recommendations. For power users and those willing to tinker, they can try each option one by one to find the combination that suits them.
Improper use of RSS?#
RSS is not a panacea. Here are some ways of using it that I think are not good.
Subscribing to too many feeds#
Many people have 999+ unread items in their RSS readers. I think many feeds—if you only read one or two articles out of the ten updates—are better off being unsubscribed.
Setting too short update intervals#
It puts too much pressure on the target server, so now many small sites are forced to provide only summaries instead of full content.
Moreover, RSS itself is not designed for real-time updates—loading an entire XML file every time is too frequent and unbearable.
Useful links#
- AboutRSS/ALL-about-RSS (github.com) As the name suggests
- Introduction | RSSHub RSSHub documentation
You can also view this article on my Hexo blog: RSS: What is it? Why? How to use it? | Yunfi's Blog