Mikan下载助手是一款面向 Windows 与 macOS 的非官方本地桌面工具。它定时读取你的 蜜柑计划 RSS,在发现新条目后获取 .torrent 文件并静默提交到 BitComet 或 Aria2,同时在一个界面里跟踪进度、处理失败任务和管理已提交的下载。
Important
本项目不提供或托管任何内容。请只订阅、下载和分享你有权访问的内容,并妥善保管 RSS 地址中的个人 token。
Mikan RSS → 发现新条目 → 获取 .torrent → 提交所选下载器 → 同步进度与完成状态
配置完成后,应用可以常驻系统托盘工作:按设定间隔轮询订阅、跳过重复种子,并把新的下载任务交给所选下载器。你仍然可以随时手动刷新、暂停自动下载或单独处理某个条目。
- 自动追踪订阅:轮询间隔可设为 1–1440 分钟,也支持手动刷新和暂停自动下载。
- 双下载器支持:可选择 BitComet 或 Aria2,切换只影响新任务,旧任务仍由原下载器管理。
- 实时状态回读:通过 BitComet WebUI 或 Aria2 JSON-RPC 每 5 秒同步下载进度与完成状态。
- 任务控制:支持提交、暂停、继续、重试、忽略、取消忽略,以及打开下载目录。
- 完整删除:可同时删除下载器任务、已下载文件和本地缓存的种子文件。
- 可靠去重:解析 torrent
info_hash,避免重复提交相同任务。 - 本地化运行:配置、订阅状态与日志保存在本机;网络请求可选择直连或系统代理。
- 托盘常驻:支持从托盘打开主界面、打开下载目录、切换开机自启动或退出应用。
- 双架构 macOS:分别提供 Apple Silicon 与 Intel 原生版本,支持 macOS 11 及以上系统。
你可以任选一种下载器:
- BitComet:安装高于 2.09 的版本(即 2.10 或更新版本),并在
设置 → 远程访问中启用 WebUI。实时进度、暂停、继续和删除操作依赖 WebUI。 - Aria2:从 aria2 官方最新版本页 获取程序。Windows 用户下载
win-64bit压缩包并解压,macOS 用户可通过 Homebrew 等方式安装,然后在配置页选择包含对应aria2c.exe(Windows)或aria2c(macOS)的文件夹;不要选择aria2.exe或第三方启动器。应用会自动判断所选文件夹中的 aria2c,并优先读取同目录的aria2.conf,复用其中的 RPC 端口、密钥、下载目录和会话文件,因此 AriaNg 及其他 RPC 客户端可以看到同一批任务;如果配置中的 RPC 尚未运行,应用会按该配置启动 aria2c。
如果尚未安装下载器,可以点击配置页黄色状态条右侧的“安装 Aria2”。Windows 会显示官方下载与解压步骤;macOS 会提供 Homebrew 安装命令,并可在安装完成后重新检测。
前往 Releases 获取最新版本:
Mikan下载助手-vX.Y.Z.exe:面向整台电脑安装,运行时可能请求管理员权限。Mikan下载助手-vX.Y.Z-macos-arm64.dmg:用于 M1、M2、M3、M4 及后续 Apple Silicon Mac。Mikan下载助手-vX.Y.Z-macos-x64.dmg:用于 Intel Mac。
macOS 安装包当前未进行 Apple 签名和公证。请先把应用拖入“应用程序”文件夹;首次启动若被 Gatekeeper 阻止,可在终端执行以下命令移除该应用的隔离属性,然后重新打开:
sudo xattr -r -d com.apple.quarantine "/Applications/Mikan下载助手.app"该命令需要输入当前用户密码,并且只应对从本项目 Releases 下载的 Mikan下载助手.app 执行。也可以打开 系统设置 → 隐私与安全性,在安全性提示旁点击“仍要打开”。
打开应用的「配置」页,依次填写或选择:
- 你的 Mikan RSS 地址,例如
https://mikanani.me/RSS/MyBangumi?token=...; - 实际存在的下载目录;
- 下载器:选择 BitComet 或 Aria2;
- 下载器路径:BitComet 和 Aria2 都选择所在文件夹,应用会自动判断其中的对应可执行文件;
- 直连或系统代理,以及合适的轮询间隔。
当所选下载器状态显示实时连接正常后,返回「订阅」页点击「刷新订阅」。确认条目无误,再开启自动下载。
| 状态 | 含义 |
|---|---|
| 新增 / 排队 | 已从 RSS 发现,等待处理 |
| 种子 | 正在获取并解析 .torrent |
| 下载中 | 已提交下载器,并在同步进度 |
| 暂停 | 下载器任务已暂停 |
| 完成 | 下载器报告完成,且本地目标存在 |
| 删除 | 原下载目标已不存在,或任务已被删除 |
| 忽略 | 不自动处理该条目,可随时取消忽略 |
| 失败 | 最近一次处理失败,可查看原因并重试 |
- 配置、状态、种子缓存和日志统一保存在系统应用数据目录。
- RSS 地址可能包含个人 token。运行日志会尽量遮蔽敏感参数,但配置页和状态文件仍需要显示或保存完整地址,请勿截图公开配置页或上传整个数据目录。
.torrent会缓存在本地数据目录中,用于状态恢复和任务管理。- BitComet WebUI 和 Aria2 RPC 都只通过本机地址连接;请不要为了排错而把远程控制接口暴露到不受信任的网络。
- 「删除任务和文件」是不可撤销操作,执行前请确认选中的条目和下载目录。
无法自动找到 BitComet
确认使用的是高于 2.09 的版本。Windows 在配置页选择包含 BitComet_x64.exe 或 BitComet.exe 的目录;macOS 选择 BitComet.app。应用会自动检查包结构和版本。
Aria2 路径有效,但 RPC 无法启动
确认所选文件夹中的 aria2c 能在终端运行 aria2c --version,且同目录 aria2.conf 中已启用 enable-rpc=true。检查 rpc-listen-port 和 rpc-secret 是否与 AriaNg 设置一致;应用会优先连接该用户配置,只有找不到可用用户配置时才使用 Mikan 自己启动的 RPC。
BitComet 路径有效,但没有实时进度
在 BitComet 的 设置 → 远程访问 中启用 WebUI,并检查端口、账号和本机访问权限。Mikan下载助手会优先读取 BitComet 配置中的 WebUI 端口,并只连接 127.0.0.1。
刷新后有新条目,但没有自动提交
检查「自动下载」是否已开启,并确认 RSS 地址、下载目录和所选下载器路径均有效。切换到尚未配置好的下载器时,应用会自动暂停自动下载。失败原因会显示在条目下方,并写入「日志」页。
开发环境需要 Node.js 20+ 和 Rust。Tauri 在 Windows 上依赖 Microsoft C++ Build Tools 与 WebView2;macOS 构建需要 macOS 11+、Xcode Command Line Tools,且 DMG 必须在 Mac 上生成。完整准备步骤见 Tauri prerequisites。
克隆仓库并进入项目目录后运行:
npm ci
npm run dev常用命令:
| 命令 | 用途 |
|---|---|
npm run dev |
启动 Tauri 开发环境 |
npm run dev:web |
仅启动 Vite 前端 |
npm run typecheck |
检查 TypeScript 类型 |
npm test |
运行类型检查与 Rust 测试 |
npm run build |
构建应用与 NSIS 安装包 |
npm run release |
在 Windows 生成 NSIS 安装包 |
npm run release:macos -- arm64 |
在 Mac 生成 Apple Silicon DMG |
npm run release:macos -- x64 |
在 Mac 生成 Intel DMG |
macOS 构建脚本会将产物复制到忽略的 release/ 目录,并验证二进制架构和 macOS 11 deployment target。推送与项目版本一致的 vX.Y.Z 标签,也会通过 GitHub Actions 构建两个架构并创建草稿 Release;草稿需完成双架构实机验收后再公开。
- Tauri 2:桌面窗口、系统托盘、Windows 安装包与 macOS DMG
- Rust:RSS、torrent、BitComet WebUI、Aria2 JSON-RPC、本地状态与后台轮询
- React 19 + TypeScript:桌面界面
- Vite:前端开发与构建
src/web/ React 界面
src-tauri/src/ Rust 核心逻辑
src-tauri/windows/ NSIS 安装器与钩子
scripts/build-release.ps1 本地发布脚本
scripts/build-release-macos.sh macOS 双架构发布脚本
.github/workflows/ macOS 草稿 Release 构建流程
assets/ 应用图标与 README 资源
欢迎提交 Issue 或 Pull Request。修改前请先运行 npm test;应用行为发生变化时,请同步更新版本号并重新生成本地发布构建。
本项目采用 MIT License 开源。
Designed by CaptainRuby