Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
11 KiB
快速开始
从零到第一条资源整理入库。开始前请先读一遍 免责声明。
1. 准备账号
| 需要什么 | 从哪里来 | 必需 |
|---|---|---|
Telegram api_id / api_hash |
用个人账号登录 https://my.telegram.org → API development tools | 是 |
| 115 账号 | 启动后在管理台扫码登录 | 是 |
| 控制 Bot Token | 在 Telegram 找 @BotFather 创建一个 Bot | 推荐 |
| 你的 Telegram 数字 ID | 给 @userinfobot 发任意消息 | 推荐 |
| AI 服务(OpenAI 兼容接口) | 任意兼容服务或本地模型 | 推荐 |
| TMDB API Key 或 Read Access Token | https://www.themoviedb.org/settings/api | 可选 |
缺了推荐项也能用,只是少一些自动化:
- 没有控制 Bot:审批卡片和告警只写日志,在管理台审批;
- 没有 AI 服务:识别降级为规则匹配,每条资源都要你确认;
- 没有 TMDB:没有规范片名、海报和按类型地区的分类,识别结果也更容易需要确认。
监听用的是你的个人账号,只能读到这个账号本来就能看到的消息,所以要先在 Telegram 里关注频道,或者和 Bot 对话过。
2. 启动
Docker(推荐)
需要 Docker Compose v2.24 及以上。不需要源码,只要一个 compose.yaml:
mkdir reelay && cd reelay
curl -fsSLO https://raw.githubusercontent.com/Derrors/reelay/main/compose.yaml
docker compose pull
docker compose up -d web
管理台在 http://127.0.0.1:28080。默认拉取最新正式版;要固定版本,在同目录建一个 .env 写上 REELAY_VERSION=<版本号>(如 1.0.0,见 Releases)。
本机运行
需要 Python 3.12 与 Node.js(构建管理台):
git clone https://github.com/Derrors/reelay && cd reelay
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[all]"
(cd web && npm ci && npm run build)
python -m reelay.web
Tip
想先看看整条流程怎么走,可以运行
python -m reelay.main --dry-run:它用内置配置、样例消息和内存里的网盘走完监听到入库的全过程,打印每条任务的处理轨迹和整理后的目录,不读本机的配置与密钥,不需要任何账号,也不访问网络。
3. 填写设置
第一次打开管理台会先要求设置登录密码(至少 8 个字符),设好后直接进入控制台。局域网里的其他设备也能完成这一步,但要用 IP 地址打开(如 http://192.168.1.10:28080),用域名打开时不能做首次设置。
然后依次完成:
- 设置 → 网络代理(国内网络需要):填写代理地址(如 Clash 的
http://192.168.1.2:7890),点「测试代理」确认 Telegram、TMDB 与 AI 服务都能连上。终端里的 Telegram 登录也会用这个代理。 - 设置 → Telegram:填写
api_id/api_hash、控制 Bot Token 和你的数字 ID。 - 设置 → AI 与 TMDB:填写 AI 接口地址与密钥,从接口返回的列表里选择模型,点「测试连通性」确认能用;再填写 TMDB 密钥。
- 设置 → 115 网盘:用 115 App 扫码登录。
所有设置保存在 data/ 目录:配置在 data/config.yaml,密钥单独存放在 data/secrets.json,页面上只显示「已设置」。
4. 登录 Telegram 并开始监听
登录个人账号需要输入验证码(开了两步验证还要输入密码),在交互终端里完成:
# Docker
docker compose run --rm --no-deps -it worker python -m reelay.login
docker compose up -d
# 本机运行(另开一个终端)
python -m reelay.login
python -m reelay.main
总览页「运行状态」里的「后台 Worker」「Telegram 监听」「115 网盘」都显示正常,就说明已经在运行了。还没登录 Telegram 时主进程也能启动,「Telegram 监听」显示「未登录」,登录后自动接上,不用重启。
5. 设置保存目录
设置 → 基础 → 保存目录:新增目录别名(如「电影」「剧集」),点「选择 115 目录」从网盘里选中文件夹。别名与默认的一级分类同名时,资源会按「电影 / 国产电影」这样的二级目录自动归类。
6. 添加监听来源
Reelay 只处理你添加的来源发来的消息。来源可以是资源 Bot、频道或群组。监听用的是你的个人账号,所以先在 Telegram 里关注这个频道、加入群组,或者和 Bot 对话过:账号看不到的消息,Reelay 也收不到。
来源怎么填
| 来源 | 填什么 |
|---|---|
| 有用户名的 Bot、频道、群组 | @username,不区分大小写 |
| 没有用户名的私有频道、群组 | 以 -100 开头的数字 ID。在 Telegram 里复制它一条消息的链接,形如 https://t.me/c/1234567890/42,在 c/ 后面那串数字前加上 -100,即 -1001234567890 |
添加方式
用样例消息接入(推荐,需要先配好 AI 服务):点「设置 → 监听来源 → 用样例消息接入」。
- 填来源,贴几条这个来源最近的消息,资源、广告、闲聊都可以,最多 10 条;
- AI 起草这个来源的设置,包括确认方式、识别方式、保存到、集数依据、必须包含的词与屏蔽关键词。然后用这份设置把样例逐条试跑,列出每条会直接转存、交给你确认,还是忽略;如果这个来源以前批准过的消息会被关键词挡掉,也会标出来;
- 满意就点「加入来源列表」,再点页面底部的保存。
手动添加:点「添加来源」,填来源,确认方式先选「人工确认」,其余沿用「基础」里的默认设置,然后保存。
来源卡片上的设置
| 设置 | 说明 |
|---|---|
| 确认方式 | 「人工确认」:每条符合要求的资源都等你确认;「AI 处理」:识别与规则都通过就直接转存,拿不准的仍交给你。新来源先用人工确认,确认得够多后再改 |
| 识别方式 | 「AI 识别」(推荐);「规则识别」:不调用 AI,按识别规则提取,适合格式规整的来源 |
| 放行方式 | 识别出的资源哪些直接转存、哪些等你确认、哪些忽略。「规则判断」:只按过滤规则和确认方式;「规则 + 订阅放行」(推荐):再让订阅的剧的新集直接转存;「AI 按偏好判断」:再让 AI 按「收藏偏好」筛一遍,只会更严,不会把等你确认的改成直接转存 |
| Bot 通知 | 推送审批卡片与入库通知;关掉后在管理台「待审批」处理,出问题的提醒照常发送 |
| 保存到 | 这个来源的资源存到哪个保存目录 |
| 高级设置 | 「消息必须包含」(如 115,不含就跳过、不调用 AI)、「包含这些词直接忽略」(如「广告」)、收藏偏好 |
各项的完整说明见 配置参考。
测试识别与识别规则
-
测试识别:在卡片上点「测试识别」,贴一条这个来源的真实消息。它会按卡片上当前的设置(包括还没保存的修改)完整识别一遍,显示识别结果、置信度和最后会怎么处理。
-
识别规则:AI 识别不准,或者不想调用 AI 时,点「设置识别规则」。
- 准备样例:点「获取最近消息」,用监听账号读取这个来源最近的 10 条消息(需要主进程在运行、Telegram 已连接,读不到时改用已经收到的消息);也可以手动粘贴。
- 写规则:点「AI 生成规则」起草,或者自己按字段写正则(片名、年份、季、集、分辨率、大小)。
- 点「试跑」看每条样例的提取结果,满意后点「保存规则」。
用 AI 识别时,规则提取的结果会作为参考一起交给 AI;AI 不可用时按规则识别兜底。正则写法见 配置参考 的
parse_rules。
生效与排查
保存后不用重启,约 1 秒后开始监听。新加的来源从这时起接收新消息,不导入以前的历史消息。
加了来源却一直没有动静时,依次检查:
- 总览「运行状态」里的「Telegram 监听」是不是「已连接」;
- 个人账号有没有关注这个频道、加入群组,或者和 Bot 对话过;
- 来源是否填对:用户名拼写,私有频道要用
-100开头的数字 ID; - 消息到了但没被处理时,「任务」里能看到它显示为「已忽略」或「已过滤」,点开看处理轨迹里的原因,比如不含「消息必须包含」里的词。
推荐来源
还不知道从哪里开始,可以先试试 @QukanMovie:一个持续发布影视资源 115 分享的公开频道,作者日常在用,Reelay 的识别与整理在它的消息上验证得最充分。
- 在 Telegram 里打开 @QukanMovie,点「加入」关注频道;
- 回到「设置 → 监听来源」,用「添加来源」填
@QukanMovie,也可以用「用样例消息接入」; - 作者用的设置可以直接照抄:
- 「消息必须包含」:
115.com、115.cn、115cdn.com,每行一个; - 「包含这些词直接忽略」:
广告、招商; - 识别方式「AI 识别」,放行方式「规则 + 订阅放行」;
- 确认方式先用「人工确认」,觉得识别靠谱了再改为「AI 处理」。
- 「消息必须包含」:
Note
这个频道由第三方运营,与 Reelay 无关。Reelay 不对它发布的内容负责,也不保证它一直可用;是否使用、转存哪些内容由你自行判断,并遵守所在地的法律与版权规定,详见 免责声明。
7. 处理第一条资源
来源发出新消息后:
- 管理台的待审批出现一张资源卡片(配置了控制 Bot 的话,Telegram 里同时收到一张带按钮的卡片),点「转存」;
- 任务依次经过
queued → saving → stored → organizing → done,115 的目标目录下出现按媒体库规范命名的文件夹和文件,Telegram 收到入库通知; - 有问题时,在任务里点开这条任务查看完整处理轨迹,或在侧栏工具 → 运行日志查看主进程日志。