https://github.com/easychen/ai-rss
AI时代的RSS生成器
https://github.com/easychen/ai-rss
Last synced: 5 months ago
JSON representation
AI时代的RSS生成器
- Host: GitHub
- URL: https://github.com/easychen/ai-rss
- Owner: easychen
- License: mit
- Created: 2024-12-22T14:03:11.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-12-29T01:00:39.000Z (over 1 year ago)
- Last Synced: 2025-09-02T14:46:27.182Z (10 months ago)
- Language: JavaScript
- Homepage: https://airss.ft07.com
- Size: 1.15 MB
- Stars: 218
- Watchers: 4
- Forks: 31
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AI RSS
AI RSS 是一个通过 AI 将网页内容转换为 RSS 订阅源的工具。
https://github.com/user-attachments/assets/5c5f7fc2-ccec-47d8-90b0-6ee323aca237
[完整使用教程请移步B站](https://www.bilibili.com/video/BV1GJkdYdE9i)
它包含两部分:
1. 一个浏览器插件,可以选择网页中的列表,并指定每一个数据项,最后生成一个 SDD(结构化数据描述) 文件
2. 一个服务器端,可以部署到 Vercel 和 Docker/NAS 上,它读取 SDD 文件,根据配置抓取网页内容并分析,最终生成 RSS 订阅源
本仓库:
1. 提供服务器端源代码,按MIT协议开源
2. 提供浏览器插件zip包下载,插件部分不开源
在浏览器插件中,用户可以一键发布 [结构化数据描述SDD](https://github.com/easychen/sdd) 格式文件到服务器,并用其生成RSS。
## 浏览器插件
### 准备工作
由于我们使用了AI的能力来分析网页内容,所以需要先注册一个 [OpenAI](https://platform.openai.com)/[API2D](https://api2d.com/r/186008)/[SillconFlow](https://cloud.siliconflow.cn/i/GKAoff2O) 的账号,并获取一个 API Key。
### 安装
支持 Chrome 和 Edge 浏览器。
1. 插件商店:[Chrome商店](https://chromewebstore.google.com/detail/airss/hhconojkeohomnfbpbioamldompinckh?authuser=0&hl=en&pli=1) | [Edge商店](https://microsoftedge.microsoft.com/addons/detail/airss/kgbiogeimnehnobgjpbebphdgmflijgl)
2. 在Releases页面下载插件包,解压后,在浏览器中打开 `chrome://extensions/` 页面,点击 "加载已解压的扩展程序",选择解压后的文件夹。
## 服务器
服务器支持两种部署方式:Vercel 和 Docker。
### Vercel 部署
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Feasychen%2Fai-rss%2Ftree%2Fmaster%2Fserver&env=ADD_KEY,CACHE_MINUTES&envDescription=配置运行所需的环境变量&envLink=https://github.com/easychen/ai-rss/tree/master/server%23服务器)
1. 点击上方的 "Deploy with Vercel" 按钮
2. 部署时需要设置以下环境变量:
- `ADD_KEY`: 设置一个添加 RSS 的 API 访问密钥
- `CACHE_MINUTES`: 设置缓存时间(分钟),不设置则不缓存
3. 创建并连接 Blob 存储:
- 部署完成后进入 Vercel 项目控制台
- 转到 "Storage" 标签页
- 点击 "Create Blob Store"
- 在项目的 storage 标签页选择新创建的 Blob 存储,点击 "Connect to Project"
注意:
1. 如果连接 storage 以后,首页依然是 "blob_storage_configured": false,请到 vercel 控制台中 redeploy 一次以使其强制生效
2. vercel 默认提供的 *.vercel.app 二级域名在中国大陆网络可能无法访问,可绑定自己的域名后使用
### Docker 部署
我们提供两种 Docker 部署方式:使用 Docker Compose 或直接使用 Docker 命令。
#### 使用 Docker Compose(推荐)
1. 创建一个工作目录并进入:
```bash
mkdir -p ai-rss-server
cd ai-rss-server
```
2. 下载 Docker Compose 文件:
```bash
wget https://raw.githubusercontent.com/easychen/ai-rss/master/server/docker-compose.yml
```
3. 创建一个 `.env` 文件,并添加以下环境变量:
```bash
ADD_KEY=your_api_key
CACHE_MINUTES=60
```
或者手工修改 `docker-compose.yml` 文件中的环境变量:
```yaml
environment:
- ADD_KEY=your_api_key
- CACHE_MINUTES=60
```
4. 启动 Docker Compose:
```bash
docker-compose up -d
```
#### 使用 Docker 命令
1. 下载 Docker 镜像:
```bash
docker pull easychen/ai-rss-server:latest
```
2. 运行 Docker 容器:
```bash
docker run -d --name ai-rss-server -e ADD_KEY=your_api_key -e CACHE_MINUTES=5 easychen/ai-rss-server:latest
```
注意:
1. 由于浏览器插件是注入到网页中执行的,因此,受浏览器限制,使用HTTPS的网站只能往HTTPS下的服务器端发送信息,你需要为服务器端配置SSL证书
## API 说明
主要接口:
- `GET /rss/:name`: 获取指定的 RSS feed
- `POST /add-sdd`: 添加新的 SDD 配置(需要 API 密钥)
- `GET /list`: 获取所有可用的 RSS feed 列表(需要 API 密钥)
### 授权
API 密钥可以通过以下两种方式传递:
1. 通过 Header 传递:
```http
X-Add-Key: your_api_key
```
2. 通过 URL 查询参数传递:
```
?key=your_api_key
```
### 接口详情
#### 1. 获取 RSS Feed
```http
GET /rss/:name
```
- 参数:
- `name`: RSS feed 的唯一标识符
- 返回:RSS XML 内容
- 无需授权
#### 2. 添加 SDD 配置
```http
POST /add-sdd
```
- Header:
- `Content-Type: application/json`
- `X-Add-Key: your_api_key`(必需)
- 请求体:
```json
{
"sdd": {
"version": "1.0",
"url": "网页URL",
"title": "标题",
"data_list": "...",
"data_list_elements": "...",
"rss": "..."
}
}
```
- 返回示例:
```json
{
"success": true,
"key": "生成的唯一key",
"rss_url": "/rss/unique_key"
}
```
#### 3. 获取 RSS Feed 列表
```http
GET /list
```
- 授权:需要通过 Header 或 URL 参数提供 API 密钥
- 返回示例:
```json
{
"success": true,
"total": 2,
"items": [
{
"key": "unique_key1",
"title": "Feed 标题",
"url": "原始网页URL",
"rss_url": "RSS feed URL",
"favicon": "网站图标URL"
},
// ...
]
}
```
## 许可证
MIT