This release is a pre-release and may not be stable for production use.
Openlist-Ani
🎬 RSS 订阅 → 自动下载 → AI 重命名,一站式番剧自动化管理
Openlist-Ani,简称O-Ani,从动漫番剧相关的 RSS 订阅源中自动获取番剧更新,通过 Openlist 离线下载至对应网盘,
并结合 LLM 分析资源名,将资源重命名为 Emby / Jellyfin 可解析的格式。
✨ 特点
- 📡 自动追番 — 自动获取 RSS 番剧更新并下载
- 📦 多网盘支持 — 基于OpenList实现,支持 PikPak、115 等离线下载
- 🗂️ 合集整理 — 一次下载多集文件,逐集解析元数据、匹配字幕并归类到媒体库
- 🤖 AI 重命名 — AI 分析资源名 + TMDB 搜索,精准获取番剧名、季度、集数
- 💬 智能助理 — 挂载至 Telegram / 微信ClawBot / 飞书机器人,通过自然语言让 AI 帮你搜索并下载资源
- 🔔 更新通知 — 通过 PushPlus、Telegram、微信ClawBot、飞书等渠道推送更新
📋 准备工作
- 参照 Openlist 官方文档 部署 Openlist,并搭建好离线下载
- 准备好 RSS 订阅链接(如 Mikan Project)
- 可选:准备 AI API Key,或安装并登录 Pi / Claude Code / Codex Agent(均未配置时元数据使用本地正则 + TMDB)
非 Docker 安装支持 Python 3.11、3.12 和 3.13,使用 libtorrent>=2.0.13,<2.1
(当前锁定版本为 2.0.13)。Windows x64 会在这三个 Python 版本上执行兼容性测试;
如果本机原生模块导入失败,请先升级到受支持的 Python 和最新项目版本,再按
PIP 安装指南中的 Windows 检查步骤验证。
源码或 PIP 安装无需 Node.js/npm。首次使用默认 Pi Assistant 时,程序会下载
官方锁定版本的独立二进制,校验 SHA-256 后原子安装到配置文件旁的
data/assistant/runtime/pi/。显式配置的 executable 和 PATH 中已有的 Pi
仍然优先,不会被覆盖。Windows 如果没有可用的 Bash,程序还会下载官方
PortableGit、校验固定 SHA-256,并将 Git Bash 安装到
data/assistant/runtime/git-bash/;不会修改系统安装或全局 PATH。
API source(包括旧 [llm] 自动迁移得到的 source)会自动注入 Pi,无需重新
配置模型;完全没有 AI source 时才使用 Pi 自己的登录和模型配置。Docker 镜像
已预装 Pi。如果使用 Claude Code 或 Codex source,则安装并登录对应的原生 CLI。
内置 Skills 不再复制到临时会话目录:Pi 直接使用 --skill,Claude Code 使用
--plugin-dir,Codex 则在每个隔离会话的 .agents/skills 中建立指向
随包 Skill 目录的临时符号链接,不复制内容或修改 Codex 的持久配置。
🚀 快速开始
方式一:源码安装(推荐)
前置:安装 uv
|
Linux / macOS curl -LsSf https://astral.sh/uv/install.sh | sh
|
Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
更多安装方式参考 uv 官方文档
1. 安装
git clone https://github.com/TwooSix/Openlist-Ani.git
cd Openlist-Ani
# 推荐切换到最新 Release tag;master 为开发分支,不保证稳定
# Release 版本以 tag 为准
git fetch --tags
git checkout tags/v*** # 将 v*** 替换为 Release 页面中的版本号
uv sync --no-dev --frozen
2. 创建配置文件
在运行目录下新建 config.toml,填入以下内容:
config_version = 2
[rss]
urls = ["RSS订阅链接"]
[downloader]
download_path = "/PikPak/Anime"
rename_format = "{anime_name} S{season:02d}E{episode:02d} {fansub} {quality} {languages}"
# 可选年份:"{anime_name} ({year}) S{season:02d}E{episode:02d}"
[downloader.openlist]
url = "http://localhost:5244"
token = "" # 令牌,见「设置 → 其他 → 令牌」
offline_download_tool = "qBittorrent"
[metadata]
pipeline = ["regex", "tmdb"] # 默认配置;推荐配置 AI source 后改为 ["ai", "tmdb"]
# 可选:API source。Metadata 直接调用 API,Assistant 由内置 Pi 承载。
# [ai.sources.primary]
# type = "api"
# provider = "openai-compatible"
# api_key = "sk-xxx"
# base_url = "https://api.deepseek.com/v1"
# model = "deepseek-chat"
完整配置项请参考
config.toml.example及 配置说明
3. 启动
uv run openlist-ani
4.(可选)启动 AI 助理
在配置文件中补充助理配置后运行:
[assistant]
enabled = true
[assistant.telegram]
enabled = true
bot_token = "" # 从 @BotFather 获取
allowed_users = [123456789] # 必填;只有这些用户可以使用 Assistant
uv run openlist-ani-assistant
内置 Skills 会随程序包加载并由 Agent 原生发现。./skills 可向 Pi/Claude Code
直接提供自定义 Skills;Codex 会将其与内置 Skills 一起投影到隔离会话的
.agents/skills 目录,同名 Skill 目录以用户版本为准。
方式二:Docker 部署
1. 准备文件
在运行目录下创建:
config.toml— 配置文件(内容同上)data/— 数据目录
2. 启动容器
docker run -d \
--name openlist-ani \
--network host \
-e ENABLE_ASSISTANT=false \
-v /path/to/config.toml:/config.toml \
-v /path/to/data:/data \
twosix26/openlist-ani:latest
将
/path/to/替换为你的实际路径。
如需启用 AI 助理,填写好配置后将ENABLE_ASSISTANT设为true。
详细说明见 Docker 部署指南。
方式三:PIP 安装
pip install openlist-ani
openlist-ani
# 可选:启动 AI 助理
openlist-ani-assistant
📖 文档
🖼️ 效果展示
| 重命名结果 | 智能助理 |
|---|---|
Metadata
Release files for openlist-ani 1.0.0.dev260809
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openlist_ani-1.0.0.dev260809.tar.gz | 261.6 kB | Without provenance | Details for openlist_ani-1.0.0.dev260809.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openlist_ani-1.0.0.dev260809-py3-none-any.whl | Python 3 | none | any | Details for openlist_ani-1.0.0.dev260809-py3-none-any.whl |
Total release size: 612.4 kB
Release files / openlist_ani-1.0.0.dev260809.tar.gz
| Download URL | openlist_ani-1.0.0.dev260809.tar.gz |
|---|---|
| Size | 261.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b69910a09909fe03e11e01dc594a8a62f7dc502267aad68a07a596d0f0650e7
|
|
BLAKE2b-256 checksum How to use checksums |
29425aaf927aa7abefc2710fa190f804d55da4e1042557cebe1116a2080712d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / openlist_ani-1.0.0.dev260809-py3-none-any.whl
| Download URL | openlist_ani-1.0.0.dev260809-py3-none-any.whl |
|---|---|
| Size | 350.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f86fbef2ce5a4327d15841e85c147c1de7983f344334356f697223cb02e3d5a
|
|
BLAKE2b-256 checksum How to use checksums |
7908ab23dc498aa7aa0654e676b255402818b30b19bd4032725f44f6af611665
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for openlist-ani 1.0.0.dev260809
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.