AnimeX 是一个基于 Mikan Project + Bangumi.tv + 多储存桶后端 的番剧整理、搜刮、下载和在线播放系统。
- 从 Mikan Project 获取订阅 RSS。
- 定时解析 RSS 更新。
- 自动解析番剧标题、集数、种子和磁力链接。
- 支持 Mikan 搜索发布。
- 支持 Bangumi 排行榜、分类浏览、新番入口跳转到 Mikan 搜刮。
- 支持大合集和多层文件夹媒体扫描。
- 支持避免重复提交下载任务。
- 从储存桶扫描已有番剧资源。
- 支持按番剧、剧集、文件组织媒体库。
- 支持递归扫描合集目录。
- 支持
.mp4 .mkv .avi .mov .flv .webm .m4v等常见视频格式。 - 优先从字幕组发布目录中提取干净番剧名。
- 根据番剧名到 Bangumi.tv 获取封面、简介、评分等信息。
- 统一
/api/stream播放入口。 - 本地 / NAS 文件播放支持 HTTP Range。
当前支持以下储存桶类型:
| 类型 | 说明 |
|---|---|
| PikPak | 保留原有网盘离线下载和在线播放能力 |
| 115 网盘 | 使用 115 Cookie 和根目录 CID 对接 |
| 本地存储 | 使用 Aria2 JSON-RPC 下载到本地目录 |
| NAS 存储 | 将 NAS 视为已挂载本地路径,复用 Aria2 下载流程 |
- 支持管理员和普通用户权限模型。
- 支持游客浏览开关。
- 支持注册开关。
- 支持邀请码注册开关。
- 管理员可批量生成、管理和删除邀请码。
- 普通用户可提交下载申请。
- 管理员审核通过后自动提交到当前储存桶。
- 后台可限制普通用户每日申请下载剧集数量。
管理员面板包含:
- 数据概览
- 用户管理
- 邀请码管理
- 番剧管理
- 下载申请
- 储存桶配置
- 日志管理
- 系统监控
- 系统设置
- 返回主页
- 支持 HTTP / HTTPS / SOCKS 代理。
- MySQL 用于保存番剧索引、剧集状态、媒体库快照、订阅记录等业务数据。
- Redis 用于缓存 Mikan / Bangumi 外部请求结果。
- Redis 不可用时不会阻止程序启动。
- Go
1.25或更高版本 - Node.js
22或兼容版本 - npm
- MySQL 8.x 或兼容版本
- Redis 6.x 或兼容版本
- PikPak 账号
- 115 Cookie
- Aria2 JSON-RPC
- 已挂载到本机的 NAS 路径
cd D:\Source\Bangumi-PikPak\frontend
npm install
npm run build
cd ..go run ./main.go默认访问地址:
http://127.0.0.1:8080
指定监听地址:
go run ./main.go -addr 0.0.0.0:8080首次打开页面后,系统会自动进入安装页面。
安装流程:
- 填写 MySQL / Redis 连接信息。
- 测试 MySQL / Redis 连接。
- 创建管理员账号。
- 自动写入数据库结构和安装状态。
- 进入系统首页。
安装完成后会生成:
data/animex.db
| 参数 | 默认值 | 说明 |
|---|---|---|
-configdb |
data/animex.db |
本地 SQLite 配置数据库路径 |
-interval |
600 |
RSS 后台同步间隔,单位秒 |
-once |
false |
只执行一次同步流程 |
-web |
true |
是否启动 Web UI |
-addr |
:8080 |
Web UI 监听地址 |
-static |
frontend/dist |
前端构建产物目录 |
-log |
空 | 可选日志文件路径;默认只输出到控制台 |
-state |
空 | 兼容旧版状态导入参数,仅用于迁移旧 PikPak 状态 |
示例:
go run ./main.go -addr 0.0.0.0:8080 -interval 600只运行一次同步流程:
go run ./main.go -once只跑后台同步,不启动 Web:
go run ./main.go -web=false- 登录 PikPak。
- 打开或创建一个用于保存番剧的目录。
- 从浏览器地址栏复制最后一段目录 ID。
示例:
https://mypikpak.com/drive/all/VNXo-T6A8uJgD1FLwBFIZK8lo1
其中:
VNXo-T6A8uJgD1FLwBFIZK8lo1
就是目录 ID。
- 登录 Mikan Project。
- 订阅你需要追番的番剧。
- 在 Mikan 首页右下角找到
RSS 订阅。 - 复制 RSS 图标对应的链接。
RSS 链接格式通常类似:
https://mikanani.me/RSS/MyBangumi?token=xxx%3d%3d
注意:Mikan RSS 只会记录你开始订阅以后更新的内容,历史发布不一定会出现在 RSS 中;如果需要补番,请使用系统内的 Mikan 搜索 / Bangumi 搜刮入口。
后台进入:
管理员面板 -> 储存桶配置
需要配置:
- PikPak 账号 / 密码,或 Access Token / Refresh Token
- PikPak 目标目录 ID
下载目录结构:
PikPak 目标目录/
├── 番剧名/
│ ├── 第01集/
│ ├── 第02集/
│ └── 第03集/
需要配置:
- 115 Cookie
- 115 根目录 CID
当前版本采用 Cookie 配置方式,不包含扫码登录。
需要配置:
- Aria2 RPC 地址
- Aria2 RPC Secret
- 本地保存路径
示例:
D:\AnimeX
NAS 第一版按“已经挂载到本机路径”处理。
需要配置:
- Aria2 RPC 地址
- Aria2 RPC Secret
- NAS 挂载路径
示例:
Z:\AnimeX
/mnt/nas/anime
镜像已发布到 Docker Hub:
docker.io/yinbuliao/bangumi-pikpak
可用标签:
| 标签 | 说明 |
|---|---|
latest |
最新稳定构建(当前指向 v1.0.0) |
v1.0.0 |
2026-05 首个正式版,含原生 Android + iOS 客户端 |
最快上手(自带 MySQL / Redis,只想先看一眼):
# 拉取
docker pull yinbuliao/bangumi-pikpak:latest
# 启动(不带 DB,仅作演示;生产请走下面的一体化部署)
docker run -d \
--name animex \
-p 8080:8080 \
-v $PWD/animex-data:/app/data \
--restart unless-stopped \
yinbuliao/bangumi-pikpak:latest
# 看日志,等启动完成
docker logs -f animex启动后访问 http://服务器IP:8080,第一次会跳出安装向导让你填 MySQL / Redis 地址、设定管理员密码。
正式部署建议直接用下一节的「一体化部署」,省去自己维护 MySQL / Redis。
仓库自带 docker-compose.full.yml,一次性启动 AnimeX + MySQL + Redis,首次运行会自动生成 MySQL / 管理员密码写到 docker-data/secrets/。
git clone https://github.com/YinBuLiao/AnimeX.git
cd AnimeX
docker compose -f docker-compose.full.yml up -d
docker compose -f docker-compose.full.yml logs -f animex启动日志末尾会打印随机生成的管理员密码:
==> AnimeX admin credentials
username: admin
password: <16 位随机串>
密码同时落盘:
docker-data/secrets/admin_password.txt
docker-data/secrets/mysql_password.txt
docker-data/secrets/mysql_root_password.txt
访问:
http://服务器IP:8080
升级时:
docker compose -f docker-compose.full.yml pull
docker compose -f docker-compose.full.yml up -d数据保存在宿主机 docker-data/,升级镜像不会丢配置 / 历史。
如果你已经有 MySQL / Redis 实例:
docker run -d \
--name animex \
-p 8080:8080 \
-v /path/to/animex-data:/app/data \
-e ANIMEX_MYSQL_HOST=你的MySQL地址 \
-e ANIMEX_MYSQL_PORT=3306 \
-e ANIMEX_MYSQL_DATABASE=animex \
-e ANIMEX_MYSQL_USERNAME=animex \
-e ANIMEX_MYSQL_PASSWORD=你的MySQL密码 \
-e ANIMEX_REDIS_ADDR=你的Redis地址:6379 \
--restart unless-stopped \
yinbuliao/bangumi-pikpak:latest本地 SQLite 配置库会落在 /path/to/animex-data/animex.db。
docker build -t animex:latest .10 MB 左右(多阶段构建:Go 静态二进制 + 编译好的 Vue 前端)。
AnimeX 提供原生 Android + iOS 客户端(基于 Flutter),与 Web 共用同一套后端。功能包括:
- 媒体库 / 发现 / 搜索 / 历史 / 下载管理
- 内置 media_kit 播放器,支持音轨/字幕切换、倍速、睡眠定时、外挂播放
- 安卓 PiP 画中画、横竖屏自动切换
- 后台离线下载(background_downloader)
- 完整管理面板(用户 / 邀请码 / 番剧 / 储存桶 / 系统设置)
到 GitHub Releases 下载最新版本:
| 平台 | 文件 | 说明 |
|---|---|---|
| Android | app-release.apk |
debug 签名,直接装。已装旧版的话先卸载(签名不同会拒装) |
| iOS(未签名) | AnimeX-release.ipa |
用 Sideloadly / AltStore 自签后安装;TrollStore 支持的系统可直接装 |
| iOS(自己签) | 同上 | 在 Xcode 打开 mobile/ios/Runner.xcworkspace,配 Team 后直接 |
App 启动后填后端地址:
http://你的服务器IP:8080
同一 Wi-Fi 下手机访问 Mac/PC 自部署的实例时,用局域网 IP(不是 127.0.0.1)。HTTPS 反代过的实例用 https://...。
账号密码就是 Web 上那套,admin 默认密码在 docker-data/secrets/admin_password.txt。
- 程序启动 Web 服务。
- 从
data/animex.db读取后台配置。 - 初始化 MySQL / Redis。
- 按配置周期拉取 Mikan RSS。
- 解析番剧标题、集数、种子或磁力链接。
- 检查 MySQL 中是否已经存在对应剧集。
- 根据当前储存桶创建目录。
- 提交下载任务到 PikPak / 115 / Aria2。
- 写入剧集状态和媒体库快照。
- 用户从首页、排行榜、分类浏览、新番时间表或搜索框进入番剧。
- 系统根据 Bangumi / Mikan 数据搜索发布。
- 管理员可以直接提交下载。
- 普通用户提交下载申请。
- 管理员审核通过后自动提交到储存桶。
- 下载结果会更新为已下载或下载失败。
后端检查:
go test ./...
go build .前端构建:
cd frontend
npm install
npm run build完整检查:
go test ./...
cd frontend
npm run build检查后台储存桶配置里的 PikPak 目录 ID 是否正确。目录 ID 不是目录名称,而是 PikPak 网页地址栏里的最后一段 ID。
参考上面的“获取 PikPak 文件夹 ID”。
登录 Mikan Project 后,订阅番剧,在首页右下角复制 RSS 订阅 图标对应的链接。
RSS 链接通常类似:
https://mikanani.me/RSS/MyBangumi?token=xxx%3d%3d
Mikan RSS 本身有延迟,并且 RSS 通常只记录你开始订阅以后更新的内容。如果你要下载历史剧集或补番,请使用系统内的 Mikan 搜索、Bangumi 排行榜或分类浏览入口搜刮下载。
RSS 更适合追新番更新,不适合补全历史全集。历史资源建议通过搜索页面或 Bangumi 搜刮入口手动提交,或者由普通用户提交申请、管理员审核下载。
检查:
- 代理地址和端口是否正确。
- 代理服务是否正在运行。
- 后台是否启用了代理开关。
- 容器部署时,容器是否能访问宿主机代理地址。
系统会通过 MySQL 记录番剧和剧集状态,尽量避免重复提交。如果仍然出现重复,请检查:
- 番剧标题是否被不同字幕组写成多个名称。
- 剧集号是否能被正确解析。
- 是否手动修改过媒体库目录结构。
- 是否清空过 MySQL 状态表。
请确认:
- 当前后台选择的储存桶类型正确。
- PikPak / 115 / 本地 / NAS 的根目录配置正确。
- 视频文件后缀在支持范围内。
- 合集资源是否在多层子目录中;当前版本会递归扫描,但目录名过于混乱时可能需要重新扫描或手动调整目录。
- MySQL 是否正常连接,因为媒体库快照和番剧索引依赖 MySQL。
请检查:
- 视频文件是否真实存在。
- 程序进程是否有读取该路径的权限。
- Docker 部署时是否把本地 / NAS 路径挂载进容器。
- 浏览器是否支持当前视频编码。部分
.mkv、HEVC、10bit 视频浏览器可能无法直接播放。
PikPak 可能会对频繁登录或请求触发风控。建议:
- 不要频繁刷新媒体库。
- 启用 MySQL,让媒体库优先读快照。
- 启用 Redis,减少 Mikan / Bangumi 重复请求。
- 使用 Access Token / Refresh Token 配置,减少账号密码登录次数。
- 等待一段时间后再重试。
默认日志主要输出到控制台,Web 服务会监听 :8080。请直接打开:
http://127.0.0.1:8080
如果端口被占用,可以换端口:
go run ./main.go -addr 127.0.0.1:8081如果 Aria2 在宿主机上,容器里的 127.0.0.1 指的是容器自己,不是宿主机。你需要把 Aria2 RPC 地址配置成容器可访问的地址。
同时,本地存储 / NAS 路径必须通过 -v 挂载进容器,否则容器内无法读取或写入。
- Mikan Project:提供番剧 RSS 与发布信息。
- Bangumi.tv:提供番剧元数据、封面、评分和分类数据。
- PikPak:提供云存储和离线下载能力。
- Aria2:提供本地 / NAS 下载能力。
- LiunxDo:本产品会在社区发布,感谢社区的支持。
MIT,详见 LICENSE。
如果这个项目对你有帮助,欢迎给一个 Star。









