Ani2Openlist - 将 ANI Open 视频挂载到 Openlist
3.2K
将 ANI Open 项目的视频通过地址树的方式挂载到 Openlist 服务器上。
# 使用 docker-compose
docker-compose up -d
# 或使用 docker run
docker run -d \
--name ani2openlist \
-p 5000:5000 \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/logs:/app/logs \
yourusername/ani2openlist:latest
详见 Docker 部署指南
pip install ani2openlist
git clone https://github.com/yourusername/ani2openlist.git
cd ani2openlist
pip install -e .
cp config.yaml.example config.yaml
config.yaml 配置文件:# Openlist 服务器配置
openlist:
url: "http://localhost:5244"
username: "admin"
password: "your_password"
target_dir: "/Anime"
# ANI Open 配置
ani:
rss_update: true
src_domain: "aniopen.an-i.workers.dev"
rss_domain: "api.ani.rip"
# 日志配置
logging:
level: "INFO"
# 使用默认配置文件 config.yaml
python cli.py
# 或指定配置文件
python cli.py -c /path/to/config.yaml
import asyncio
from ani2openlist import Ani2Openlist, load_config
async def main():
# 从配置文件加载
config = load_config("config.yaml")
# 创建实例
ani = Ani2Openlist(config=config)
# 运行更新
await ani.run()
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from ani2openlist import Ani2Openlist
async def main():
# 创建 Ani2Openlist 实例
ani = Ani2Openlist(
url="http://localhost:5244", # Openlist 服务器地址
username="admin", # Openlist 用户名
password="password", # Openlist 密码
target_dir="/Anime", # 挂载目录
rss_update=True # 使用 RSS 追更
)
# 运行更新
await ani.run()
if __name__ == "__main__":
asyncio.run(main())
ani = Ani2Openlist(
url="http://localhost:5244",
token="your-openlist-token",
target_dir="/Anime",
rss_update=True
)
ani = Ani2Openlist(
url="http://localhost:5244",
username="admin",
password="password",
target_dir="/Anime",
rss_update=False,
year=2024,
month=10 # 2024年10月(秋季)
)
ani = Ani2Openlist(
url="http://localhost:5244",
username="admin",
password="password",
target_dir="/Anime",
rss_update=False,
key_word="2024-10" # 自定义关键字
)
ani = Ani2Openlist(
url="http://localhost:5244",
username="admin",
password="password",
target_dir="/Anime",
rss_update=True,
src_domain="your-aniopen-proxy.com", # ANI Open 反代域名
rss_domain="your-rss-proxy.com" # RSS 反代域名
)
配置文件使用 YAML 格式,包含以下几个部分:
openlist:
url: "http://localhost:5244" # Openlist 服务器地址
username: "admin" # 用户名(与 token 二选一)
password: "password" # 密码(与 token 二选一)
token: "your-token" # Token 认证(优先使用)
target_dir: "/Anime" # 挂载目录
update_timeout: 120 # 存储写回响应等待时间(秒)
ani:
rss_update: true # 使用 RSS 追更
year: 2024 # 动画年份(rss_update=false 时)
month: 10 # 动画季度(rss_update=false 时)
key_word: "2024-10" # 自定义关键字
src_domain: "aniopen.an-i.workers.dev" # ANI Open 源域名
rss_domain: "api.ani.rip" # RSS 域名
logging:
level: "INFO" # 日志级别: DEBUG/INFO/WARNING/ERROR
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
file: "logs/ani2openlist.log" # 日志文件(可选)
max_bytes: 10485760 # 日志文件最大大小(可选)
backup_count: 5 # 保留的日志文件数量(可选)
命令行参数会覆盖配置文件中的设置:
# 指定配置文件
python cli.py -c config.yaml
# 覆盖配置文件中的参数
python cli.py --url http://localhost:5244 --username admin --password pass
# 使用 RSS 追更
python cli.py --rss
# 指定年份和季度
python cli.py --year 2024 --month 10
# 使用自定义关键字
python cli.py --keyword "2024-10"
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| url | str | "http://localhost:5244" | Openlist 服务器地址 |
| username | str | "" | Openlist 用户名 |
| password | str | "" | Openlist 密码 |
| token | str | "" | Openlist 永久令牌(与用户名密码二选一) |
| target_dir | str | "/Anime" | 挂载到 Openlist 的目录 |
| rss_update | bool | True | 是否使用 RSS 追更最新番剧 |
| year | int | None | None | 动画年份 |
| month | int | None | None | 动画季度(1, 4, 7, 10) |
| src_domain | str | "aniopen.an-i.workers.dev" | ANI Open 项目地址 |
| rss_domain | str | "api.ani.rip" | RSS 订阅地址 |
| flaresolverr_url | str | "" | 可选 FlareSolverr 地址,仅用于手动目录扫描 |
| flaresolverr_timeout | int | 60000 | FlareSolverr 浏览器请求超时(毫秒) |
| resource_domain | str | "" | 手动扫描生成链接使用的资源域名,留空沿用源域名 |
| http_timeout | float | 30 | 普通 HTTP 请求超时(秒) |
| storage_update_timeout | float | 120 | 存储写回响应等待时间(秒),配置键为 openlist.update_timeout |
| key_word | str | None | None | 自定义关键字 |
| config | Config | None | None | Config 对象(优先使用) |
FlareSolverr 会话、配置示例及源站兼容性限制见 FlareSolverr 目录扫描。
ani2openlist/
├── ani2openlist/ # 主包
│ ├── __init__.py
│ ├── ani2openlist.py # 核心功能
│ ├── openlist/ # Openlist 客户端
│ │ ├── __init__.py
│ │ ├── client.py
│ │ ├── path.py
│ │ └── storage.py
│ ├── core/ # 核心模块
│ │ ├── __init__.py
│ │ ├── config.py # 配置管理
│ │ └── logger.py # 日志管理
│ └── utils/ # 工具类
│ ├── __init__.py
│ ├── openlist.py
│ ├── http.py
│ ├── multiton.py
│ ├── retry.py
│ ├── singleton.py
│ └── url.py
├── examples/ # 示例代码
│ ├── config_usage.py # 配置文件使用示例
│ └── ...
├── config.yaml.example # 配置文件模板
├── config.yaml # 配置文件
├── requirements.txt # 依赖
├── setup.py # 安装配置
├── cli.py # 命令行入口
└── README.md # 说明文档
本项目基于 MIT 许可证开源。详见 LICENSE 文件。
本项目提取自 AutoFilm
欢迎提交 Issue 和 Pull Request!
AkimioJR
Content type
Image
Digest
sha256:4bcea397e…
Size
52.7 MB
Last updated
1 day ago
docker pull xinmeng96/ani2openlist