Self-hosted service
DIYgod/RSSHub avatar
DIYgod/RSSHub

RSSHub: Turning the Web into RSS Feeds, One Route at a Time

RSSHub generates RSS feeds from almost any source — from YouTube and Telegram to Weibo and Bilibili — through a large self-hostable route network.

46,193 stars10,211 forksTypeScriptAGPL-3.0

At a glance

What is it?
RSSHub is an open-source TypeScript project that generates RSS feeds for websites that don't offer them. It runs as a self-hosted service with thousands of community-written routes, but its scale and license come with real trade-offs.
Who is it for?
Adopt RSSHub if you rely on RSS for news aggregation and need feeds from sites that lack native support, especially if you want to control your own instance and contribute routes. Avoid it if you cannot accept the AGPL-3.0 license obligations or if you need guaranteed feed stability, since routes can break when target sites change.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: RSS Is Dying, but the Demand Is Not

Many modern websites, especially social platforms and news outlets, have removed or never offered RSS feeds. Readers who rely on RSS aggregators are left with either manual checking or abandoned tools. RSSHub exists to fill that gap by generating feeds for content that has no native RSS output. It is aimed at individual users who run their own reader, developers who want to integrate third-party content into their apps, and communities that want to archive or monitor specific sources. The project does not try to replace RSS readers; it tries to make RSS viable again by bridging the missing feeds.

How RSSHub Works: Routes as the Core Mechanism

The documentation describes RSSHub as a network of over 5,000 global instances, but the actual mechanism is simpler: each website that RSSHub supports is defined as a 'route'. A route is a piece of TypeScript code that fetches data from a specific site, parses it, and outputs it as a valid RSS feed. The project's repository contains hundreds of route files, each tailored to a particular source, such as a YouTube channel, a Twitter user, or a niche blog. When you request a URL like /twitter/user/username, RSSHub matches that path to a route, runs its fetching and parsing logic, and returns an XML feed. This design means the project's coverage depends entirely on the community writing and maintaining these routes. New routes are added via pull requests, and the README explicitly welcomes contributions, which is how the route count grows.

Getting It Running: Docker, npm, and the Public Instance

The README points to the documentation for deployment, but the repository layout and the package name give clear signals. You can run RSSHub via the official Docker image, which is listed on Docker Hub, or via the npm package 'rsshub'. The npm package suggests a Node.js environment, and the TypeScript source implies a build step. A typical deployment starts with cloning the repository, installing dependencies with npm install, and then running the server, which listens on a port and serves routes. The documentation also mentions a public instance at rsshub.app, which means you can try routes without setting up your own server. However, the README does not list configuration keys, so you would need to consult the deployment docs for environment variables like cache settings or proxy options. The Docker image is the most direct path for a production setup.

The Scale Problem: Over 5,000 Instances, but Which Routes Work?

The README claims RSSHub is the world's largest RSS network with over 5,000 global instances. That number is a claim, not a verified fact from this material, and it should be treated as marketing. What is clear is that the project has a large community, given the number of related projects listed, like RSSHub Radar and RSSBud. But scale brings a practical problem: not every route is equally reliable. A route depends on the target website's structure, which can change without notice. When a site updates its HTML or API, the corresponding route breaks until a contributor fixes it. The README does not mention any automatic monitoring or health checks for routes, so you cannot assume a feed will work forever. This is a maintenance burden that falls on the community, and for a user, it means you should test each route you plan to use.

A Real Limitation: The AGPL-3.0 License Is Not Optional

RSSHub is released under the AGPL-3.0 license. This is a strong copyleft license, and it has direct implications for anyone who deploys it. If you modify the code and run it as a network service, you are required to make your modified source code available to users of that service. This is a genuine constraint for companies or individuals who want to build a proprietary service on top of RSSHub. The license also affects how you can embed RSSHub into a larger product. This is not legal advice, but the license text is clear about its terms. If you only run the stock image without modifications, the obligation is lighter, but you still need to comply with the license's distribution terms. For a hobbyist, this is rarely an issue; for a business, it can be a dealbreaker.

Alternative Approaches: Dedicated Scrapers and Native APIs

RSSHub is not the only way to get RSS from non-RSS sites. A common alternative is to write a dedicated scraper for each site, using a tool like BeautifulSoup or Puppeteer, and then generate your own RSS feed. The difference is that a scraper is custom code for one site, while RSSHub is a collection of such scrapers in one framework. Another alternative is to use a site's official API, if one exists, to fetch data and then format it as RSS. This approach is more stable because APIs are less likely to change, but it requires authentication tokens and rate limits management. RSSHub's routes often rely on public pages without authentication, which makes them simpler but more fragile. The trade-off is clear: RSSHub gives you breadth quickly, but a custom solution gives you control over reliability and data extraction.

Maintenance and Upgrade Costs: Community-Driven, but Not Free

The README states that the community ensures new routes, features, and bug fixes. That means you are relying on volunteers to keep feeds alive. There is no mention of a roadmap or versioned releases, and the 'Recent releases: none retrieved' in the repository metadata suggests that the project may not use formal release tags, which complicates version tracking. Upgrading RSSHub likely means pulling the latest Docker image or updating the npm package, but without release notes, you cannot easily know what changed. The documentation is the primary source of truth, and it is linked but not included here. For a self-hosted user, this means you should plan to check the documentation and the repository's commit history regularly. The cost is not in money but in time spent verifying that your feeds still work after each update.

Editorial conclusion

Adopt RSSHub if you rely on RSS for news aggregation and need feeds from sites that lack native support, especially if you want to control your own instance and contribute routes. Avoid it if you cannot accept the AGPL-3.0 license obligations or if you need guaranteed feed stability, since routes can break when target sites change. Before deploying, verify the documentation for your specific routes, check the rate limits of your target sites, and consider running the official Docker image to reduce setup friction.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
Community notes

Community notes