共计 3629 个字符,预计需要花费 10 分钟才能阅读完成。
相信很多玩 NAS 的朋友都有过类似的经历:在 PT 站或者资源站看到一部心仪的电影,点击下载,然后等着它躺进硬盘。但事情远没有结束,下载下来的文件名通常是一串乱码般的字符,比如 Movie.Name.2024.UHD.BluRay.2160p.x265...。为了让 Plex 或 Emby 能漂亮地削刮出海报和简介,你得手动重命名,移动到分类目录,如果是 PT 用户,为了保种还得小心翼翼地使用硬链接。
之前我一直使用 Nastools 来解决这个问题,它确实是个神器。但随着时间的推移,Nastools 的更新频率变缓,且由于一些原因变得越来越难以获取和配置。就在我寻找替代品的时候,MoviePilot 进入了我的视野。在使用了一段时间后,我发现它不仅完美替代了前辈,还在用户体验上有了质的飞跃。
今天就来聊聊这个让我在 NAS 影音管理上"重获自由"的工具——MoviePilot。
什么是 MoviePilot?
简单来说,MoviePilot 是一个基于 Docker 的 NAS 媒体库自动化管理工具。它的核心目标非常纯粹:把找资源、下载、整理、刮削、通知这一整套流程完全自动化。
在这个领域,我们熟知的还有 Radarr/Sonarr 组合,或者是国内大神开发的 Nastools。MoviePilot 可以看作是 Nastools 的"精神续作"(实际上它确实基于 Nastools 开发,但进行了大量的重构和优化)。它主要针对中文环境和 PT 玩家进行了深度优化,解决了国外软件在中文刮削和命名上的水土不服。
为什么它值得关注?
- 现代化 UI:相比于充满了极客风的配置界面,MoviePilot 的 Web UI 基于 Vue3 开发,清新、直观,对移动端适配也很好。
- 配置简化:很多复杂的配置项被移到了 Web 界面中,不再需要面对几百行的配置文件发愁。
- 插件化架构:它的功能通过插件扩展,你需要什么就开什么,系统更加轻量灵活。
- 活跃的开发:作者维护非常勤快,Issue 响应速度很快,这对于一个开源项目来说至关重要。

核心功能深度解析
在深度使用了几周后,我觉得 MoviePilot 有几个杀手级功能真正改变了我的使用习惯。
智能搜索与订阅
以前我想看一部剧,得去 PT 站搜,看种子详情,选一个体积适中的下载。
现在在 MoviePilot 里,直接搜索"繁花",它会聚合所有索引器(通过 Prowlarr 或 Jackett)的结果。更棒的是订阅功能,对于连载中的动画或美剧,只要订阅一次,它就会自动监测更新,一出新集自动下载。
目录整理与硬链接(Hardlink)
这是 PT 玩家的刚需。下载目录通常是乱七八糟的,而媒体库目录需要井井有条。
MoviePilot 可以在文件下载完成后,自动通过硬链接的方式,把文件"复制"到媒体库目录并重命名。
- 下载目录:
/downloads/torrents/Movie.Name.2024.../video.mkv - 媒体库目录:
/media/movies/Movie Name (2024)/Movie Name (2024).mkv
这两个文件指向硬盘上同一个数据块,不占用双倍空间,既能让 PT 软件继续做种,又能让 Emby 识别得整整齐齐。
消息通知
它支持微信、Telegram、Slack 等多种通知渠道。我配置了 Telegram Bot,每当有电影下载完成并整理好,手机就会"叮"一声收到海报和简介,这种掌控感非常棒。
站点管理与 CookieCloud
这是它的一个特色。通过配合浏览器插件 CookieCloud,它可以自动同步你浏览器里的 PT 站 Cookie 到服务端。这意味着你不需要手动去抓取 cookie 填入配置文件,站点保活和数据统计变得异常简单。
动手搭建:Docker 部署实战
说得再好,不如上手一试。MoviePilot 推荐使用 Docker Compose 部署,这在群晖、威联通或者普通的 Linux 服务器上都很通用。
前置准备
在开始之前,你需要准备好:
- Docker 环境:确保安装了 Docker 和 Docker Compose。
- TMDB API Key:去 The Movie Database 申请一个免费的 API Key,用于元数据刮削。
- 媒体服务器:你的 Plex、Emby 或 Jellyfin 应该已经安装好。
- 下载器:推荐 qBittorrent 或 Transmission。
部署步骤
首先,创建一个文件夹 moviepilot,并在其中创建 docker-compose.yml 文件:
version: '3.3'
services:
moviepilot:
image: jxxghp/moviepilot:latest
container_name: moviepilot
restart: always
ports:
- "3000:3000" # Web 访问端口
volumes:
- ./config:/config # 配置文件映射
- ./core:/moviepilot/.cache/ms-playwright # 缓存目录
- /volume1/video:/video # ⚠️ 关键:这里要挂载你的媒体总目录
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- PUID=1000 # 运行用户ID,群晖用户通过 id 命令查看
- PGID=1000 # 运行组ID
- TZ=Asia/Shanghai
- SUPERUSER=admin # 初始管理员用户名
- API_TOKEN=moviepilot # API 密钥,自定义一个复杂的
- TMDB_API_KEY=your_tmdb_api_key # 填入你申请的 Key
- NGINX_PORT=3000
- PORT=3001
# ⚠️ 如果你有 CookieCloud 服务器,可以在这里配置,或者后续在 UI 配置
⚠️ 特别注意:路径映射
这是新手最容易踩坑的地方(我也踩过)。为了让硬链接(Hardlink)生效,下载器(如 qBittorrent)和 MoviePilot 看到的路径必须一致,且必须在同一个文件系统分区下。
建议的映射方式是挂载一个"大目录"。
比如你的宿主机结构是:
/data/downloads(下载)/data/media(媒体库)
那么在 qBittorrent 和 MoviePilot 的 docker compose 里,最好都统一挂载 /data:/data。这样它们看到的路径都是 /data/downloads/...,硬链接才能瞬间完成。
启动容器:
docker-compose up -d
启动后,查看日志 (docker logs moviepilot),你会看到初始密码。访问 http://ip:3000 登录。
初始化配置
进入 Web 界面后,你会发现它是空的。别急,我们需要一步步“点亮”它:
- 配置下载器:在设置里找到下载器选项,填入你的 qBittorrent 地址、用户名密码。点击测试,通了就是成功。
- 配置媒体服务器:填入 Emby/Plex 的地址和 API Key。这样 MoviePilot 整理完文件后,会通知媒体服务器"扫库",实现秒级入库。
- 配置索引器:这是找资源的源头。你可以直接配置内置的索引器(如果你有 PT 站账号),或者更推荐配合 Prowlarr 使用。在 Prowlarr 里配置好所有站点,然后把 Prowlarr 的 API 地址填给 MoviePilot,一劳永逸。
- 站点同步:在浏览器安装 CookieCloud 插件,填写 MoviePilot 的地址(或者你自建的 CookieCloud 服务地址),一键同步站点 Cookie。你会发现所有站点的小图标在 MoviePilot 里亮起来了,那种感觉非常治愈。
避坑指南与心得
在使用过程中,我也遇到了一些小插曲,分享出来给大家避避坑:
- 刮削失败怎么办?
如果发现下载了电影但没有整理,多半是命名太奇葩导致识别失败。可以在"整理"历史里手动识别,或者在设置里添加"自定义识别词"。比如有些动漫组喜欢用简写,你需要告诉 MoviePilot 那个简写对应什么。 - 网络问题
TMDB 的 API 在国内网络环境下有时不稳定。如果日志里频繁出现连接超时,你可能需要考虑在 Docker 环境变量里配置代理,或者通过修改 Hosts 解决。 - 不要过度自动化
刚开始我开启了全自动洗版(升级画质)。结果发现它疯狂下载同一个电影的 4K 版本,把我的上传流量跑光了。建议对于"洗版"功能保持克制,只对特别喜欢的电影手动触发,或者设置严格的过滤规则。
最后
MoviePilot 给我最大的感受是"省心"。以前我为了整理一部刚下载的电影,可能要花 10 分钟去改名、找字幕、刷新海报。现在,我只需要在手机上打开 MoviePilot,搜一下,点个订阅,然后就可以放下手机去忙别的了。等我有空坐到电视前,那部电影已经安安静静地躺在"最近添加"的列表里,海报精美,字幕完备。
对于技术爱好者来说,折腾工具的过程本身就是一种乐趣;但对于更广泛的用户来说,工具的最终目的是为了"消失"。MoviePilot 正在无限接近这个状态——它在后台默默运行,让你忘记它的存在,只享受影音带来的快乐。

