MDC-NG:Rust 重构的下一代刮削引擎
当 MDC 系列工具走过 CLI、PyQt 图形界面时代,MDC-NG(Next Generation)的出现标志着这一系列工具进入了全新的技术纪元。采用 Rust + Next.js + SQLite 技术栈的 MDC-NG,在设计理念和工程实践上都与前代工具截然不同。
项目定位
MDC-NG(Yet another Movie Data Capture tool)是一个完全从零构建的元数据刮削工具。它不是 MDCx 或 MDCz 的简单升级,而是一次彻底的重写——在吸收前代工具功能经验的基础上,选择了全新的技术路线。
项目的核心设计目标可以概括为:高性能、现代化、易部署。
技术栈解析
后端:Rust
选择 Rust 作为后端语言是 MDC-NG 最具标志性的技术决策。Rust 带来的优势包括:
- 极致性能:Rust 的原生性能远超 Python,多线程并发处理刮削任务时优势显著
- 内存安全:Rust 的所有权系统保证无垃圾回收停顿,适合长时间稳定运行的服务
- 零成本抽象:编译为单一二进制文件,镜像体积 < 300MB,启动速度极快
- 内存占用低:运行时内存占用 < 300MB,在 NAS 等资源受限设备上表现优异
前端:Next.js
相比前代工具使用 PyQt 构建桌面界面,MDC-NG 选择了 Next.js 构建 Web 管理界面:
- 响应式设计:桌面和移动端均可使用
- 现代交互体验:支持主题切换、NSFW 模式、实时日志推送
- 零客户端安装:通过浏览器即可访问,无需安装额外软件
数据库:SQLite
- 零配置:无需单独部署数据库服务
- 轻量易维护:单文件存储,备份迁移方便
- 性能足够:对于个人媒体库场景,SQLite 的性能完全够用
核心功能
智能刮削
MDC-NG 的刮削引擎支持 30+ 刮削源,覆盖了市面上主流的元数据数据库。其智能刮削流程包括:
- 番号自动识别:从文件名中智能提取影片标识符
- 多源并行查询:同时在多个数据源中搜索匹配的元数据
- AI 人脸识别裁剪:智能定位演员面部区域,生成标准尺寸海报
- 日亚高清海报:从 Amazon Japan 搜索下载高质量海报素材
多种整理模式
MDC-NG 支持 5 种文件整理模式,满足不同存储场景的需求:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 硬链接 | 节省空间,文件系统级别共享 | 本地 NAS 存储 |
| 复制 | 完整的文件副本 | 跨盘迁移 |
| 移动 | 文件移动到目标目录 | 整理归档 |
| 软链接 | 创建符号链接 | 灵活映射 |
| 原地整理 | 在原目录生成元数据 | 不想改变文件结构 |
目录监控
MDC-NG 提供两种监控模式:
- 性能模式:使用文件系统事件监听(inotify/FSEvents),实时响应文件变更,适合本地存储
- 兼容模式:定时扫描文件系统,检查更新,兼容网络挂载等特殊文件系统
演员管理
MDC-NG 支持联动 Emby 自动刮削演员信息和图片,数据源涵盖维基百科、minnano-av、graphis、gfriends 等多个演员数据库。
图片处理
- AI 人脸识别智能裁剪海报
- Amazon Japan 高清海报下载
- 支持视频/图片为背景的海报,可选择保留片名或人脸检测
- 4K/8K 分辨率影片类型水印标签
任务管理
MDC-NG 提供完整的任务管理与记录系统:
- 任务持久化:完整的刮削记录,支持状态追踪
- 批量操作:批量重试、停止、删除等管理功能
- 详情页面:美观的刮削详情页,含画廊展示和元数据分析
- 日志分析:详细的刮削日志和错误信息
数据源生态
MDC-NG 支持 30+ 刮削源,覆盖各类视频类型,并且支持:
- 优先级配置:用户可为数据源配置优先级
- 防反爬机制:自动处理请求频率、User-Agent 伪装等
- 自动重试:失败时自动切换到备用数据源,提高刮削成功率
部署体验
MDC-NG 在部署便捷性上做了大量工作:
- Docker 一键启动:官方提供 Docker 镜像,
docker compose up -d即可运行 - 单文件部署:Rust 编译后的单一二进制文件,部署无复杂依赖
- 版本更新轻量:更新仅需约 60MB 的下载量
与 AMMDS 的对比
| 对比维度 | MDC-NG | AMMDS |
|---|---|---|
| 后端语言 | Rust | Java SpringBoot |
| 前端框架 | Next.js (React) | Vue3 |
| 数据库 | SQLite | PostgreSQL |
| 部署方式 | Docker / 单文件 | Docker / Windows Launcher |
| 刮削源 | 30+ 内置刮削源 | 插件化扩展 |
| 功能边界 | 专注刮削与整理 | 刮削 + 站点 + 订阅 + 推送一体化 |
| 镜像体积 | < 300MB | 因包含完整平台功能而更大 |
MDC-NG 在"纯粹刮削"这个赛道上做到了极致——用 Rust 的高性能换来了流畅的批量处理体验,用 Next.js 的现代化界面提升了用户交互感受,用轻量化设计降低了部署门槛。它与 AMMDS 是差异化竞争的关系,分别服务于不同偏好的用户群体。
结语
MDC-NG 的出现证明了元数据刮削工具还有很大的创新空间。Rust + Next.js 的技术组合不仅带来了性能上的飞跃,也为后续的功能拓展奠定了良好的基础。对于追求极致性能和现代交互体验的用户来说,MDC-NG 是一个非常值得尝试的选择。
