基于 RSS 订阅的信息流整合方案

前置知识:信息技术/互联网基础,docker 基础,自建站能力

整合思路:

  1. 基于 RSShub 自建订阅源,同时搜索第三方源
  2. 使用 RSS_GPT 进行 RSS 源转发增强,AI 总结
  3. 借助 WeWe RSS 对微信公众号文章进行 RSS 订阅
  4. 搭建 FreshRSS 对以上 RSS 源信息整合和再分发
  5. 选择合适的第三方 RSS 阅读器,并与 FreshRSS 打通

1 方案细节

注意:确保服务器有完整的 docker 环境

1.1 安装 RSShub

RSShub 项目能通过爬取网页内容的方式生成 RSS 信息流,极大增强了 RSS 的来源

本人考虑使用 RSShub 的 docker-compose 方式部署:

wget https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml
vi docker-compose.yml  # 检查有无需要修改的配置
docker-compose up -d # 启动,默认端口是 1200

安全配置:设置环境变量 ACCESS_KEY 来限制访问权限

自部署 RSShub 支持 AI 总结功能,具体可参阅官方文档

1.2 安装 FrenshRSS

FrenshRSS 是一个自托管 RSS 聚合服务

FrenshRSS 提供 RSS 的基本阅读,并方便多平台的 RSS 阅读同步

  1. 先使用 docker 方式安装
docker run -d --restart unless-stopped --log-opt max-size=10m \
  -p 8081:80 \
  -e TZ=Asia/Shanghai \
  -e 'CRON_MIN=1,31' \
  -v freshrss_data:/var/www/FreshRSS/data \
  -v freshrss_extensions:/var/www/FreshRSS/extensions \
  --name freshrss \
  freshrss/freshrss
  1. 通过 ip:port 打开页面进行初始化配置

配置项包括:语言选择、检查、数据库选择(SQLite)、创建用户

  1. 设置 API ,方便不同设备间的阅读进度同步

先进入"认证"开启"允许 API 访问",再进入账号界面配置"API 密码"

可以使用以下链接进行 API 的检测:http://ip:port/api

目前 FrenshRSS API 主要支持 Google ReaderFever 两种格式

  1. 在账号管理中配置"认证口令(token)",控制聚合 RSS 的输出权限

可以使用以下链接进行 RSS 输出的检测:http://ip:port/i/?a=rss&user=xxxxx&token=xxxxxxxxx&hours=168

1.3 部署 RSS_GPT(可选)

RSS_GPT 可以定时转发第三方 RSS 源并添加 AI 总结

官方教程

目前的 RSS_GPT 问题:

  • 不支持权限控制,不支持 opml 格式的 RSS 源
  • 对第三方类 openai 接口支持不够,需要修改源码

该项目逻辑较为简单,有能力者可考虑自行 DIY

主要改动点:

  • 对超长文本进行截断,限制最大字符数为 10000
  • 环境变量 OPENAI_BASE_URL 未生效,临时修改其默认值
  • 将备选 LLMs 从 gpt4 修改为 gpt-3.5-turbo-16k (省钱)

后续改善:结合向量知识库,可实现多 RSS 源文章的去重与检索

1.4 安装 RSS 阅读器

只要是支持 Google Reader API 或 Fever API 的阅读器都行

  • Fever API 示例:http://ip:port/api/fever.php
  • Google Reader API 示例:http://ip:port/api/greader.php

如果不需要使用 FreshRSS 进行统一管理,则任意 RSS 阅读器都行

推荐阅读器 1:Fluent Reader

  • 开源、免费和跨平台;但个人感觉阅读体验一般
  • 点击"设置"中的"服务",选择 Google Reader API
  • 填入之前在 FrenshRSS 中设置的 API 和 API 密码

Fluent Reader 对新增的 RSS 源无法自动分类,但支持一键同步分组信息

具体同步方式:需要手动点击"设置-分组与排序-导入分组"

推荐阅读器 2:FeedMe

  • Android 独占,免费,无功能限制;阅读体验不错
  • 支持备份;支持对单个订阅源配置 保留 或 过滤 规则

至此 RSS 源订阅及其阅读进度实现了多端多设备的无缝衔接!

1.5 微信公众号 RSS 订阅

方案 1:今天看啥

  • 付费微信公众号 RSS 订阅,按照公众号的订阅数收费
  • 正常更新推迟时间在 5min~1day,支持急速订阅(小时级)

方案 2:wechat2rss

  • 支持私有化部署,订阅制付费,10元/月,100元/月
  • 开放了大量免费的公众号 RSS 订阅接口
  • 平均6小时,低时延订阅更新,本地实现/保护隐私

方案 3:WeWe RSS

本人目前主要采用方案 3,考虑到隐私风险因此使用了微信小号

后续测试中,发现方案 3 分享的 RSS 无法被 FrenshRSS 解析,后来发现是 nginx 的转发问题;考虑到安全性,干脆直接使用 docker 容器内部 ip 进行服务间的访问

步骤概述:单独构建 network,并分别关联到以上几个 RSS 相关服务

docker network create --subnet=172.21.0.0/16 --gateway=172.21.0.1 rss_network
docker network connect rss_network wewe-rss
docker network connect rss_network freshrss
docker network connect rss_network rsshub

2 RSS 进阶

RSS 相关优质工具分享:

  • RSSHub-Radar:RSShub 项目衍生的浏览器插件,可用于搜索网站的 RSS 源
  • GPT_API_free :OpenAI 官方 API 接口的国内平替,收费低,适合国内访问
  • RSS-Translator:开源、简洁、可自部署的 RSS 翻译器(支持 AI 总结)
  • Tiny Tiny RSS:自建 RSS 阅读器开源软件,类似于 FreshRSS

第三方 RSS 源检索技巧

  • RSSAnything:根据录入的网站 url 尝试搜索/生成 RSS 源
  • Feedsearch:RSS 源搜索服务,可发现网站隐藏的 RSS 源
  • MoreRSS:提供优质的中/英 RSS 源(显示订阅量),支持翻译
  • 中文优质rss源:记录 webfollow 中订阅人数最多的 RSS 源
  • 免费微信公众号源: https://wechat2rss.xlab.app/list/all.html
  • 常用 RSS 源列表: https://plink.anyfeeder.com/

常见 RSS 阅读器:

  • Inoreader:跨平台,功能丰富;免费版支持 100 个 RSS 源
  • Feedly:跨平台,免费版支持 200 个 RSS 源(3 个文件夹),付费版支持 AI
  • Reeder:苹果生态系统中推荐的 RSS 阅读器
  • 更多 RSS 阅读器推荐

更多 RSS 工具合集: MoreRSS 推荐的优秀 RSS 工具

ALL-about-RSS:RSS 相关内容的工具,服务,社区和教程等

第三方 RSSHub 镜像源:

  • https://rsshub.rssforever.com (推荐)
  • https://rss.injahow.cn
  • https://rss.shab.fun
  • https://rsshub.anyant.xyz

参考

基于 RSS 搭建个人信息收集、处理系统的经验
重新捡起 RSS:RSSHub + FreshRSS 建立我的信息流

往年同期文章