少女祈祷中...

文章背景图

MoviePilot 完全指南:从认识、部署到玩转 NAS 媒体库自动化

2026-04-25
15
-
- 分钟

你是否经历过这样的场景:想追一部周更的美剧,每周都要记得去站点搜资源、挑版本、添加下载,下完还要手动改名、移动到媒体库、刷新 Emby——一部剧追下来,重复劳动不计其数。

MoviePilot 要解决的正是这个问题:你只需点一次「订阅」,剩下的搜索、下载、识别、重命名、整理、刮削、入库、通知,全部自动完成。

本文基于 MoviePilot 官方 Wiki(wiki.movie-pilot.org)系统整理,分为三大部分:认识 MoviePilot → Docker Compose 部署实战 → 使用与进阶教程,带你从零走完媒体库自动化的完整闭环。


请勿在任何国内平台发布或引用此文章任何相关内容,请尽量避免在国内公共场合提及MoviePilot全称,如确实有需要请使用简称:MP

第一部分:认识 MoviePilot

1.1 MoviePilot是什么

MoviePilot 是一款开源的 NAS 媒体库自动化管理工具,基于 NAStool 的部分代码重新设计,聚焦「自动化」这一核心需求,在减少历史问题的同时,架构上更易于扩展和维护。

它的定位非常清晰:作为家庭影音自动化链路的「中枢神经」,MoviePilot 负责 资源订阅下载文件整理刮削 两大核心任务——你告诉它「我想看这部剧」,剩下的事(监控站点新资源、择优下载、识别元数据、重命名、整理入库、刮削海报、通知媒体服务器刷新)全部自动完成。

项目主要资源:

1.2 核心功能全景

核心功能全景

① 资源订阅与自动追更。 搜索电影、剧集后点击「订阅」即可加入追更列表。系统周期性刷新站点新资源(支持内置爬虫自动模式与站点 RSS 模式),对增量资源逐个识别匹配,命中即自动下载。支持洗版(出现更高优先级资源时自动替换下载)与订阅搜索(每 24 小时全站补搜防漏集)。

② 精准媒体识别。 「识别」是 MoviePilot 区别于一般下载工具的核心特性:内置针对 PT 资源命名优化的规则引擎,从标题提取关键信息后到 TheMovieDb / 豆瓣 / Bangumi 匹配元数据。识别失败的资源不会被下载和整理——宁可少下,也不下错。识别率还可通过自定义识别词、ChatGPT 类插件进一步增强。

③ 文件整理与刮削。 支持下载器监控(每 5 分钟)与目录实时监控(V2 内建)两种触发方式;整理方式涵盖硬链接、软链接、复制、移动、Rclone 复制/移动,满足保种、省空间、网盘同步等不同需求;基于 Jinja2 语法的自定义重命名格式配合二级分类策略,媒体库结构完全由你掌控;整理完成自动刮削元数据与海报,并可联动刷新 Emby/Jellyfin/Plex。

④ 站点管理。 支持 100+ 私有 PT 站点与 Nyaa、动漫花园等公开站点(清单见软件内「设定 → 关于」)。支持手动添加,也支持通过 CookieCloud 浏览器插件批量同步站点 Cookie 并定时更新;站点卡片直观展示连接状态(绿/黄/红),支持优先级、流控、代理、浏览器仿真等精细设置。

⑤ 优先级与过滤体系。 优先级是核心概念,统一遵循「数值越小越优先」,贯穿站点、目录、过滤规则、分类策略等场景。通过订阅/搜索/洗版优先级规则,可以精确描述「优先特效字幕、排除杜比、1080P 优先于 4K」这类复杂偏好。

⑥ 消息通知与远程交互。 支持企业微信、Telegram、Slack、SynologyChat、VoceChat、Discord、WebPush 等渠道。配置任一渠道即获得远程交互能力:聊天窗口发影片名即可搜索下载,发「订阅 + 名称」即可添加订阅;V2 支持按用户隔离通知,家庭成员各收各的消息。

⑦ 插件生态。 V2 插件市场已有 300+ 插件,默认内置 20 个官方与社区仓库,可一键「同步 Wiki」合并公开仓库。常用插件如站点自动签到、豆瓣想看/榜单订阅、IYUU 自动辅种、媒体库服务器刷新、ChatGPT 识别增强等。插件还能向智能助手注册 Agent 工具,扩展性极强。

⑧ AI 智能助手(V2 内置)。 真正的「智能体」能力而非问答机器人:内置工具 + 技能系统 + 插件扩展三层架构。你说「帮我搜《沙丘2》的资源,优先 2160p」「分析最近一次整理失败的原因并重试」,它会真的去查询、判断并执行。支持文本、图片、文件、语音多模态交互,可在 WEB、本地 CLI、Telegram/微信等渠道使用,还支持搜索结果 AI 推荐与整理失败智能接管。

⑨ 开放集成。 提供完善的 REST API 与 MCP Server,可在 Claude Code、OpenClaw 等第三方 Agent 工具中接入;通过模拟 Radarr/Sonarr API,与 Overseerr/Jellyseerr 无缝集成,实现多用户选片申请与审批。

1.3 适用场景

场景

说明

家庭影音 NAS 玩家

拥有群晖/威联通/自组 NAS,希望「订阅即所得」,剧集更新自动入库

PT 站点用户

需要保种(硬链接整理)、多站点聚合搜索、站点数据统计与自动签到

追更党

美剧、日番周更,开播即下、下完即看,手机收通知就知道更新了

影音库洁癖用户

对目录结构、命名规范、海报墙有严格要求,需要精准识别、重命名与刮削

多人共享场景

配合 Overseerr/Jellyseerr 与多用户通知隔离,给家人朋友提供选片申请入口

网盘用户

通过 Rclone 整理方式将资源同步到网盘媒体库

1.4 主要特点

  1. 聚焦自动化,准确优先:相比「搜到更多」,更在意「搜得更准」——所有搜索订阅默认经过元数据匹配过滤,从源头避免误下载。

  2. 部署方式多样:Docker(推荐)、Windows(exe 与安装版)、群晖 DSM7 套件、macOS/Linux 本地 CLI。

  3. 配置全部可视化:V2 几乎所有配置项可在 WEB 界面完成,配置优先级为「环境变量 > env 配置文件 / WEB 界面」。

  4. 生态完善:300+ 插件、官方资源包自动更新、Windows 版、移动端(MoviePilotLite)、Apple TV(MoviePilot-TV)、浏览器扩展(MoviePilot-Tools)等周边项目齐全。

  5. 拥抱 AI:内置智能助手、AI 推荐、MCP 开放接口,是同类工具中 AI 集成最深的之一。

  6. 企业级细节:支持 PostgreSQL、Redis 缓存、SQLite WAL、大内存模式、数据自动清理、插件热加载等进阶运维选项。

1.5 运行原理

┌─────────┐   订阅/搜索   ┌────────────┐  添加下载    ┌─────────┐
│  用户   │ ───────────▶ │ MoviePilot │ ─────────▶ │ 下载器   │
│ (WEB/   │             │            │             │ QB / TR │
│  微信/TG)│ ◀───────────│            │ ◀───────── │         │
└─────────┘   通知提醒    └─────┬──────┘  下载完成    └─────────┘
                               │
            识别/重命名/刮削     ▼
                        ┌────────────┐  刷新媒体库 ┌─────────┐
                        │  媒体库目录 │ ─────────▶│ Emby /  │
                        │ (硬链接等)  │            │ Jellyfin│
                        └────────────┘            │ / Plex  │
                                                  └─────────┘

❗使用前需要准备:资源订阅下载功能需要有可用的 PT 站点账号,且至少一个站点支持用户认证(点击查看配置参考 | MoviePilot Wiki)、下载器(Qbittorrent ≥ 4.3.9 或 Transmission ≥ 3.0)、媒体服务器(Emby / Jellyfin / Plex),以及能顺畅访问 TheMovieDb 与 Github 的网络环境


第二部分:Docker Compose 部署实战

Docker 是官方推荐的部署方式——镜像内置虚拟显示、浏览器仿真、内建重启、代理缓存等特性,一个容器即可承载完整功能。下面从环境检查开始,一步步完成部署。

2.1 环境要求

硬件与系统:支持 Docker 的 x86_64 / ARM64 设备(群晖/威联通 NAS、Linux 服务器、macOS、Windows Docker Desktop 均可),内存建议 2GB 以上。

软件依赖:Docker Engine 与 Docker Compose;可选装 Portainer 方便图形化管理:

docker run -d --restart=always --name="portainer" -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce

网络环境(关键前提):MoviePilot 依赖两类外部服务

依赖

用途

优化手段

TheMovieDb

读取与匹配媒体元数据

单独代理 PROXY_HOST、全局代理、API 域名改为 api.tmdb.org、开启 DOH、修改 hosts、Cloudflare Workers 中转

Github

程序升级、插件安装、资源包更新

GITHUB_TOKEN 提高限流阈值、GITHUB_PROXY 加速站、PIP_PROXY 依赖镜像

推荐使用「单独代理」或「全局代理」,网络质量更稳定。

代理配置教程查看这篇文章:Docker部署 Clash 代理完整指南 - 屋檐下的猫🐱

配套软件(需提前安装)

类型

软件

版本要求

下载器

Qbittorrent

≥ 4.3.9

下载器

Transmission

≥ 3.0

媒体服务器

Emby

建议 ≥ 4.8.0.45

媒体服务器

Jellyfin

推荐 latest 分支

媒体服务器

Plex

无特定要求

Cookie 同步

CookieCloud 浏览器插件

MP 已内置服务端,浏览器插件需单独安装

2.2 部署前准备

① 目录规划(最重要的决策)。建议将下载目录与媒体库目录放在同一存储空间下,以便使用「硬链接」整理(一份文件两个入口,不占双倍空间且不影响做种)。推荐结构:

/media
├── downloads/          # 下载器实际保存目录(QB/TR 中也指向此目录)
│   ├── 电影/
│   └── 电视剧/
└── library/            # 媒体库目录(Emby/Jellyfin/Plex 扫描此目录)
    ├── 电影/
    └── 电视剧/

要点:MoviePilot 的下载目录需与下载器的保存目录一致;推荐将宿主机 /media 直接映射为容器内 /media,路径完全一致可避免大量问题。

② 调整宿主机 inotify 限制。目录监控基于文件系统事件实现,文件较多时默认句柄数可能不足。在宿主机(不是容器内)执行:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
echo fs.inotify.max_user_instances=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

③ 创建配置目录

mkdir -p /moviepilot-v2/config   # 持久化配置目录
mkdir -p /moviepilot-v2/core     # 浏览器内核目录(避免每次启动重复下载)

2.3 快速部署(精简版)

适合大多数个人用户,使用内置 SQLite 与本地缓存,一个容器即可运行。

services:

  moviepilot:
    stdin_open: true
    tty: true
    container_name: moviepilot-v2
    hostname: moviepilot-v2
    image: jxxghp/moviepilot-v2:latest
    restart: always
    ports:
      - '3000:3000'    # WEB 管理界面端口
      - '3001:3001'    # API 服务端口
    volumes:
      - '/media:/media'                                    # 媒体目录(下载 + 媒体库)
      - '/moviepilot-v2/config:/config'                    # 持久化配置
      - '/moviepilot-v2/core:/moviepilot/.cloakbrowser'    # 浏览器内核持久化
      - '/var/run/docker.sock:/var/run/docker.sock:ro'     # 内建重启权限
    environment:
      - 'NGINX_PORT=3000'
      - 'PORT=3001'
      - 'PUID=0'
      - 'PGID=0'
      - 'UMASK=000'
      - 'TZ=Asia/Shanghai'
      - 'SUPERUSER=admin'
      - 'SUPERUSER_PASSWORD=请修改为你的初始密码'
      # - 'API_TOKEN=16位以上复杂字符串'     # 可选,不设置则自动生成
      # - 'PROXY_HOST=http://127.0.0.1:7890' # 可选,按需设置代理

如需让 MoviePilot 监控下载器种子做二次整理/辅种,可追加映射:

      - '/tr/config/torrents:/torrents'                # Transmission 种子位置
      - '/qbittorrent/data/data/BT_backup:/BT_backup'  # Qbittorrent 种子位置

启动

docker compose up -d

2.4 全功能部署(PostgreSQL + Redis)

数据量较大或追求性能的用户,可使用 PostgreSQL 数据库与 Redis 缓存(数据库需 v2.7.3+)。以下 Compose 还包含 pgloader 服务,可将旧 SQLite 数据迁移至 PostgreSQL:

services:

  moviepilot:
    stdin_open: true
    tty: true
    container_name: moviepilot-v2
    hostname: moviepilot-v2
    image: jxxghp/moviepilot-v2:latest
    restart: always
    ports:
      - '3000:3000'
      - '3001:3001'
    volumes:
      - '/media:/media'
      - '/moviepilot-v2/config:/config'
      - '/moviepilot-v2/core:/moviepilot/.cloakbrowser'
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
      - '/tr/config/torrents:/torrents'
      - '/qbittorrent/data/data/BT_backup:/BT_backup'
    environment:
      - 'NGINX_PORT=3000'
      - 'PORT=3001'
      - 'PUID=0'
      - 'PGID=0'
      - 'UMASK=000'
      - 'TZ=Asia/Shanghai'
      - 'SUPERUSER=admin'
      - 'SUPERUSER_PASSWORD=请修改为你的初始密码'   # 请修改为你的初始密码
      - 'PROXY_HOST=http://127.0.0.1:7890'     # 代理配置改成自己的
      - 'TMDB_API_KEY=XXXXX' # themoviedb的令牌密钥改成自己的
      - 'GITHUB_TOKEN=ghp_XXXXX' # github令牌改成自己的
      - 'AUTH_SITE=站点名称'  # 认证站点名称改成自己的
      - '站点名称_UID=XXXXX' # 认证站点用户ID改成自己的
      - '站点名称_PASSKEY=XXXXX' # 认证站点秘钥改成自己的
      # PostgreSQL 数据库配置
      - 'DB_TYPE=postgresql'
      - 'DB_POSTGRESQL_HOST=postgresql'
      - 'DB_POSTGRESQL_PORT=5432'
      - 'DB_POSTGRESQL_DATABASE=moviepilot'
      - 'DB_POSTGRESQL_USERNAME=moviepilot'
      - 'DB_POSTGRESQL_PASSWORD=pg_password'   # 请修改你的数据库密码,需和下方POSTGRES_PASSWORD保持一致
      # Redis 缓存配置
      - 'CACHE_BACKEND_TYPE=redis'
      - 'CACHE_BACKEND_URL=redis://:redis_password@redis:6379'
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy

  redis:
    image: redis
    volumes:
      - /volume1/docker/redis/data:/data
    command: redis-server --save 600 1 --requirepass redis_password
    healthcheck:
      test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  postgresql:
    image: postgres:18
    restart: always
    environment:
      POSTGRES_DB: moviepilot
      POSTGRES_USER: moviepilot
      POSTGRES_PASSWORD: pg_password   # 请修改你的数据库密码,需和上方DB_POSTGRESQL_PASSWORD保持一致
    volumes:
      # PostgreSQL 18.0+ 使用此路径;17.6 及以下改用 /var/lib/postgresql/data
      - /volume1/docker/postgresql:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U moviepilot -d moviepilot"]
      interval: 10s
      timeout: 5s
      retries: 5

 # 可选:将已有 SQLite 数据迁移到 PostgreSQL(迁移完成后可移除该服务)
 # pgloader:
 #    image: dimitri/pgloader:latest
 #   volumes:
 #     - /moviepilot-v2/config:/mp_config
 #   command: >
 #     pgloader
 #     sqlite:///mp_config/user.db
 #     postgresql://moviepilot:pg_password@postgresql:5432/moviepilot
 #   depends_on:
 #     postgresql:
 #       condition: service_healthy

注意:切换 PostgreSQL 前请备份原 SQLite 数据库;若是先升级到 v2.7.3+ 再切换数据库,需在 PostgreSQL 中执行 update alembic_version set version_num = 'd58298a0879f'; 后重启。使用 Redis 后本地文件缓存自动迁移到 Redis,可降低主程序内存占用。

2.5 环境变量参数详解

基础部署参数

变量

说明

默认值

NGINX_PORT

WEB 服务端口,不能与 API 端口冲突

3000

PORT

API 服务端口

3001

PUID / PGID

运行程序用户的 uid / gid

0 / 0

UMASK

文件掩码权限,可考虑 022

000

TZ

时区

Asia/Shanghai

SUPERUSER

超级管理员用户名(仅首次安装生效)

admin

SUPERUSER_PASSWORD

超级管理员初始密码(v2.8.0+,仅首次生效;不配置则随机生成并写入日志)

随机生成

API_TOKEN

API 密钥,V2 需 ≥16 位复杂字符串;Webhook、消息回调需携带

自动生成

APP_DOMAIN

应用域名,如 https://mp.example.com

START_NOGOSU

设为 true 时不切换容器内用户(PUID/PGID 失效),缓解无根容器权限问题

false

网络与加速参数

变量

说明

示例

PROXY_HOST

网络代理,支持 http(s)/socks5/socks5h

http://127.0.0.1:7890

DOH_ENABLE

DNS over HTTPS 开关

true

GITHUB_TOKEN

提高 Github API 限流阈值

ghp_****

GITHUB_PROXY

Github 文件下载加速

https://mirror.ghproxy.com/

PIP_PROXY

pip 镜像站

https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

TMDB_API_DOMAIN

TMDB API 地址,可改为可访问域名

api.tmdb.org

升级与存储参数

变量

说明

默认值

MOVIEPILOT_AUTO_UPDATE

重启时自动更新:release/true/dev/false

release

AUTO_UPDATE_RESOURCE

启动时自动更新站点资源包(建议开启)

true

CACHE_BACKEND_TYPE

缓存类型:cachetools / redis

cachetools

CACHE_BACKEND_URL

Redis 连接串

redis://localhost:6379

DB_TYPE

数据库类型:sqlite / postgresql(v2.7.3+)

sqlite

BIG_MEMORY_MODE

大内存模式,增加缓存提升响应速度

false

用户认证参数:推荐登录后通过「用户头像 → 用户认证」在前端完成;自动化部署可用环境变量,例如:

- 'AUTH_SITE=iyuu'                 # 认证站点,多个用逗号分隔,依次尝试直到成功
- 'IYUU_SIGN=你的IYUU登录令牌'

认证站点变量(完整清单见官方 Wiki「配置参考」):配置参考 | MoviePilot Wiki

HTTPS 参数(仅 Docker 环境)ENABLE_SSLSSL_DOMAINSSL_NGINX_PORT(默认 443)、SSL_EMAILAUTO_ISSUE_CERTacme.sh 自动签发,仅 DNS 认证)、DNS_PROVIDERACME_ENV_xx

配置优先级环境变量 > env 配置文件 == WEB 界面。已通过环境变量注入的项,前端与 app.env 中的同名配置不会覆盖它。

2.6 启动、验证与首次登录

# 启动
docker compose up -d

# 查看实时日志(首次启动会执行更新与初始化,需耐心等待)
docker logs -f moviepilot-v2

获取初始密码:已设置 SUPERUSER_PASSWORD 则直接使用;未设置时系统生成随机复杂密码,在日志中查找:

grep "超级管理员" /moviepilot-v2/config/logs/moviepilot.log

浏览器访问 http://服务器IP:3000 登录后,依次完成三件事:

  1. 设定 → 用户 修改管理员密码(不要弱密码,非必要不暴露公网——账号被盗将导致站点 Cookie 等敏感数据泄露);

  2. 检查 设定 → 系统 → 基础设置 → API令牌:若 API_TOKEN 不满足 16 位复杂度要求,每次启动都会重新生成,请尽快修改固定;

  3. 按第三部分教程完成站点认证、目录、下载器、媒体服务器等配置。

2.7 反向代理与 HTTPS

如需域名访问,以 Nginx 为例,必须包含以下配置项,否则部分功能无法访问:

location / {
    proxy_pass http://ip:port;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

使用 SSL 时还需开启 http2,否则日志加载可能过慢或不可用:

server {
    listen 443 ssl;
    http2 on;
    # ...
}

代理连接超时时间应尽量长(如 10 分钟),避免流式搜索、日志等长连接请求被代理提前中断。

2.8 升级与日常维护

自动升级:设置 MOVIEPILOT_AUTO_UPDATE=releaseAUTO_UPDATE_RESOURCE=true 后,重启容器即可自动升级到最新正式版并保持站点资源包最新;由于映射了 docker.sock,可直接在 WEB 界面选择重启。

手动升级

docker compose pull
docker compose up --force-recreate -d

正常映射了 /config 目录的前提下,重置/重建容器不会导致配置丢失(群晖为右键「重置」,Portainer 为容器详情页「重建」)。

备份:定期备份 /moviepilot-v2/config 目录即可完整保留配置、数据库(SQLite 模式)与插件数据。


第三部分:使用与进阶教程

部署完成只是起点。本部分按「初始配置 → 功能模块 → 进阶玩法」的顺序,带你把 MoviePilot 真正用起来。

3.1 初始配置

登录与密码:浏览器访问 http://服务器IP:3000,使用超级管理员账号(默认 admin)与初始密码登录,第一时间在 设定 → 用户 中修改密码。

API_TOKEN 检查设定 → 系统 → 基础设置 → API令牌,V2 要求 16 位以上复杂字符串。该令牌用于媒体服务器 Webhook、消息回调、MCP 等所有对外服务地址。

用户认证(关键步骤):资源搜索、订阅、下载功能必须先通过站点用户认证。三种方式任选(推荐前两种):

  1. 首次安装的初始化向导中直接完成认证;

  2. 点击右上角用户头像 → 用户认证,系统动态列出当前支持的认证站点;

  3. 或添加环境变量 AUTH_SITE + 对应站点参数(适合自动化部署)。

基础设置一览

入口

主要配置

基础设置

应用域名、API 令牌、壁纸、识别来源、Github Token、OCR 服务、智能助手

进阶设置

代理、DOH、TMDB 域名、日志、全局图片缓存、自动更新、数据清理

搜索设置

搜索来源、过滤规则组、索引站点、种子标签、下载站点字幕

订阅设置

订阅模式、订阅搜索、RSS 间隔、订阅站点与过滤规则

站点设置

CookieCloud、站点数据刷新、浏览器仿真、FlareSolverr

目录设置

刮削来源、重命名格式、存储、目录、媒体分类

通知

微信 / Telegram / 飞书等通知渠道

3.2 站点管理

手动添加站点:进入「站点管理」,点击右下角 +

字段

说明

站点地址

站点域名,需在支持清单内(清单见 设定 → 关于

优先级

数值越小越优先,影响搜索排序与下载选择,可拖动卡片调整

RSS 地址

站点 RSS 页选择影视分类、条数选最大,复制「BT 客户端使用的 RSS 链接」

超时时间

站点响应慢调大(如 30 秒),连通性好调小(如 10 秒)减少搜索耗时

站点 Cookie

浏览器开发者工具 → 网络 → 主页面请求 → 请求头中的 Cookie

请求头 / 令牌

个别站点使用 Authorization 或 API Key(如馒头)

站点 User-Agent

与 Cookie 配套的浏览器 UA,有助于跳过 Cloudflare 人机验证

站点流控

限制单位时间访问次数与间隔,避免给站点造成压力

代理 / 浏览器仿真

代理需配置 PROXY_HOST;仿真适用于人机验证严格的站点(更慢、更耗资源)

CookieCloud 快速添加(推荐)

  1. 浏览器安装 CookieCloud 插件,登录各站点后同步 Cookie 到服务端;

  2. 设定 → 站点 中配置 CookieCloud 参数(服务器地址、用户 KEY、加密密码)并开启同步——可使用 MP 内置本地服务或独立服务端,与浏览器插件地址保持一致;

  3. 设定 → 服务 中手动运行一次「同步CookieCloud站点」,自动添加站点、生成 RSS 链接和图标,并按设定间隔(默认 24 小时)定时更新 Cookie。

站点维护:站点卡片的「更新」按钮可输入用户名密码自动模拟登录刷新 Cookie(依赖浏览器内核与 OCR,非 100% 成功);卡片右上角图标显示连接状态——🟢 正常、🟡 慢(>5 秒)、🔴 无法连接;设定 → 规划 → 下载规则 选择「站点优先级」时,卡片顺序影响下载选择策略。

3.3 目录与整理设置

下载目录设定 中添加,注意 Docker 部署时根路径必须映射到容器内,且需与下载器中的保存目录一致;支持多目录按优先级依次匹配。

媒体库目录与分类:支持两级分类体系——一级为媒体类型(电影/电视剧,固定),二级为媒体类别(由分类策略结合 TMDB 元数据确定,如华语电影、日韩剧)。目录项三个选项的配合逻辑:

媒体类型

媒体类别

自动分类

效果

全部

全部

自动创建一级 + 二级分类目录

指定

全部

自动创建二级分类目录

指定

指定

任意

以设定路径为准,不创建子目录

全部

全部

以设定路径为准,不分类

常见方案(根目录 /video):

# 方案一:一二级全自动分类
路径 /video,类型:全部,类别:全部,自动分类:开

# 方案二:一级手动、二级自动
路径 /video/电影,类型:电影,类别:全部,自动分类:开
路径 /video/电视剧,类型:电视剧,类别:全部,自动分类:开

# 动漫独立一级目录(需先在 category.yaml 配好动漫二级分类)
路径 /video/动漫,类型:电影,类别:动画电影
路径 /video/动漫,类型:电视剧,类别:国漫

整理方式设定 → 目录 → 整理模式):

方式

特点

适用

硬链接

一份空间两个入口,不影响做种;要求同一磁盘/存储空间/映射路径

PT 保种用户首选

软链接

类似快捷方式,原文件删除即失效;docker 下映射前后路径需一致

特殊场景

复制

多占一份空间

不做种、跨盘

移动

影响做种

一次性整理

Rclone 复制/移动

同步到网盘;需映射 rclone 配置目录(/moviepilot/.config/rclone),网盘配置名必须为 MP

网盘媒体库

覆盖方式(媒体库已存在同名文件时):从不覆盖(中断并报错)/ 按大小覆盖 / 总是覆盖 / 仅保留最新版本(删除其它所有版本,配合洗版使用)。

自动整理触发:下载器监控每 5 分钟一次;目录监控为实时(请勿对网盘目录使用,易触发流控);QB 用户还可在「设置 → 下载完成时运行外部程序」填入 curl "http://localhost:3000/api/v1/transfer/now?token=你的API_TOKEN" 实现秒级入库。

3.4 下载器与媒体服务器

下载器设定 → 连接 → 下载器 中添加 Qbittorrent(≥4.3.9)或 Transmission(≥3.0)。添加下载时会打上 MOVIEPILOT 标签,并通过「下载文件自动整理」开关监控完成状态。

qbittorrent部署教程:【NAS教程】docker部署qbittorrent下载器 - 屋檐下的猫🐱

媒体服务器:支持 Emby(建议 ≥4.8.0.45)、Jellyfin、Plex。配置后 MoviePilot 会:通过 API 查询库存避免重复下载;按 MEDIASERVER_SYNC_INTERVAL(默认 6 小时)同步媒体库数据;接收 Webhook——在媒体服务器 Webhook 插件中配置 http://ip:3001/api/v1/webhook?token=你的API_TOKEN(同类型配置多个时追加 &source=配置名称)。

Overseerr/Jellyseerr 集成(可选):MoviePilot 模拟 Radarr/Sonarr API,可作为 Overseerr 后端——Overseerr 负责多用户选片与审批,MoviePilot 负责订阅、下载与整理。

3.5 搜索功能

搜索媒体信息:点击搜索图标或按 Ctrl+K / Cmd+K 打开聚合搜索窗口;设定 → 搜索 → 媒体数据源 设置展示来源与排序。

搜索资源

  1. 先在 设定 → 搜索 → 搜索站点 圈定站点范围(站点越多越慢);

  2. 设定 → 搜索 → 过滤规则 全局排除不想要的资源,例如无杜比设备可排除:Dolby[\s.]+Vision|DOVI|[\s.]+DV[\s.]+|杜比视界

  3. 两种方式——精确搜索(点击媒体卡片/详情页搜索图标,结果经识别匹配过滤,只含该媒体资源)与模糊搜索(聚合窗口选「站点资源」,直接展示站点返回数据,不经过滤,适合精确搜索无结果时补充);

  4. V2 采用流式搜索:实时显示进度与预览结果,页面保持可交互;代理不支持流式时自动回退。

精确搜索依赖识别源与展示源一致;若因 TMDB 与豆瓣/Bangumi 数据不一致导致无法搜索,请重新搜索媒体并选择与识别源一致的数据源浏览。

AI 智能推荐:配置智能助手并开启 AI_RECOMMEND_ENABLED 后,搜索结果页可执行「AI智能推荐」,对当前结果二次筛选排序;原始结果与 AI 推荐结果切换时筛选条件自动保存与恢复。

3.6 订阅与自动追更

添加订阅:搜索媒体后点击卡片 ❤️ 或详情页「订阅」。添加后系统 3 分钟内对全订阅站点做一次搜索补全存量资源,未下全的进入「订阅刷新」循环。

订阅模式设定 → 订阅):

模式

机制

特点

自动(spider)

内置爬虫以 20-40 分钟随机间隔抓取站点种子列表页;每天 7:00 开始,全天约 32 次后停止

支持促销标识、做种数,可用于优先级与过滤规则

站点RSS

按站点 RSS 链接刷新,间隔可自定义(必须 >5 分钟)

不支持促销与做种数判定

每次刷新只处理站点增量资源,逐个识别匹配并缓存,命中订阅即下载。

订阅搜索(防漏集):站点列表页与 RSS 均有条数限制,更新频繁时可能漏集。开启后系统每隔 24 小时对订阅做一次全站搜索补漏(间隔固定)。未出现漏订阅建议不开启,以免给站点造成压力。

洗版:开启后匹配到更高优先级资源会继续下载,直到拿到洗版优先级中的最高版本。注意:仅完结状态剧集支持洗版;需配合覆盖策略(「总是覆盖」或「仅保留最新版本」),或在重命名规则中加入质量要素实现多版本共存。

订阅站点与编辑:全局范围在 设定 → 订阅 → 订阅站点;「编辑订阅」可单独设定站点范围与识别词,还可将订阅分享给其他用户。

远程订阅:配置任一消息渠道后,聊天客户端发送「订阅 + 影片名称」即可远程添加。

3.7 文件整理与历史记录

自动整理:下载完成的文件被自动识别、重命名、转移并刮削入库;识别失败的资源不会被整理,会在历史记录中留下失败记录。

手动整理

  • 历史记录:找到失败记录,手动修正媒体信息后重新整理;

  • 文件管理:浏览文件系统,对单个文件或整个目录发起整理;

  • 批量手动整理:选择整个目录,或历史记录按关键字筛出某剧集全选「重新整理」。整理对话框的实用字段:

    • 自动重新整理:全部留空,使用内置识别重新整理;

    • 指定集数:如 11-2(合并集)、1,3

    • 集数定位{ep} 占位符标定集数位置,如 (BD)十二国記 第{ep}話{a}(1440x1080 x264-10bpp flac).mkv

    • 集数偏移:解决合集/多季集数错位,如 -10,或用 EP 运算(EP*2-1)。

历史记录中的两种重新处理:「重新整理」(已知正确媒体信息时手工修正)与「智能助手整理」(失败原因复杂时调用智能助手重新分析,需启用 AI_AGENT_ENABLE,过程实时滚动显示)。

/redo 命令(消息渠道):

/redo [id]
/redo [id] [tmdbid/豆瓣id]|[类型]

3.8 通知与远程交互

通知渠道设定 → 通知)要点:

渠道

要点

企业微信

企业 ID + 应用 Secret + AgentId;微信插件扫码后可直接在微信收发消息;2022 年 6 月后新建应用需固定公网 IP 的消息代理(wxchat-Docker / CDN / socat 中转)

Telegram

消息轮循接收,无需公网回调,需网络可达 Telegram;支持用户/管理员白名单

Slack

创建 App 开启 Socket Mode,配置 Bot Token Scopes 与 App-Level Token

SynologyChat

群晖 Chat 机器人,传出 URL 填消息回调地址

VoceChat / Discord

机器人密钥 + 频道 ID,Webhook 指向消息回调地址

WebPush

需域名 + SSL + PWA 安装,实现客户端级推送;iOS 需 16.4+

消息回调统一地址:http(s)://域名:端口/api/v1/message/?token=你的API_TOKEN;同类型配置多个时追加 &source=配置名称

通知隔离(多用户):在用户个人信息中维护通知渠道 ID,并按消息类型设定发送范围——交互类消息只有操作人收到;用户主动操作(下载、订阅)可发给操作人/管理员/全体;系统广播类消息可发给管理员或全体。

远程交互能力:配置任一渠道后即可——发影片名搜索下载、发「订阅 + 名称」加订阅、使用 /redo/skills 等命令;已启用智能助手时,消息入口同时支持 AI 交互(文本、图片、文件、语音)。

3.9 插件生态

插件市场:V2 已有 300+ 插件,默认内置 20 个官方与社区仓库;「插件市场设置」中点击「同步 Wiki」可自动合并 Wiki 收录的公开仓库。也可手动在 PLUGIN_MARKET 添加第三方仓库(仅支持 Github 仓库 main 分支,逗号分隔)。插件安装升级依赖 Github 连通性,建议配置 GITHUB_TOKENGITHUB_PROXYPIP_PROXY 与代理。

常用插件

插件

功能

站点自动签到

自动完成站点签到/模拟登录,避免账号被封

豆瓣想看

豆瓣标记「想看」后自动订阅搜索下载

豆瓣榜单订阅

关注豆瓣榜单,媒体库缺失的自动订阅

媒体库服务器通知

入库、删除等事件推送通知

媒体库服务器刷新

整理完成后立即通知媒体服务器刷新

ChatGPT

AI 增强资源识别

IYUU自动辅种

免客户端自动辅种

MoviePilot更新推送

自动更新主程序到最新版本

配置中心、站点数据统计、目录监控等 V1 热门插件在 V2 已内置,无需安装。部分插件提供数据页面与仪表板组件,启用后可在仪表盘展示。

3.10 AI 智能助手

启用配置(最少四项):设定 → 系统 → 基础设置 打开「启用智能助手」(AI_AGENT_ENABLE),选择 LLM提供商,填写 LLM API密钥,填写或刷新选择 LLM模型名称,点击「测试调用」验证。可选增强:全局智能助手(消息对话默认走智能体)、图片输入(多模态模型建议开启)、音频输入/语音回复(独立配置 AUDIO_INPUT_* / AUDIO_OUTPUT_*)、搜索结果智能推荐、文件整理失败智能接管。

能力范围:智能助手 = 读取上下文 + 调用 MoviePilot 工具 + 按技能流程执行,覆盖媒体检索与推荐、资源搜索与下载、订阅管理与缺集处理、文件整理与媒体库查询、站点/下载器/工作流排障、插件命令分发。典型说法:

  • 「帮我搜《沙丘2》的资源,优先 2160p 和免费」

  • 「看看《人生切割术》订阅过没有,没有就帮我加上」

  • 「分析最近一次整理失败,能修就直接重试」

  • 「测试一下这个站点的连通性」

使用入口:WEB(搜索页「AI智能推荐」、历史记录「智能助手整理」)、CLI(moviepilot agent 帮我检查当前配置)、消息渠道(直接对话,/skills 管理技能市场)。

权限边界:查询类能力可直接使用;修改配置、删除记录、执行命令、运行工作流等高风险操作需管理员权限。MCP 与 Agent API 使用 API_TOKEN 认证,持有该密钥的客户端视为受信任的管理员级集成,请只配置给信任的客户端。

3.11 进阶玩法

① 优先级规则(订阅/搜索/洗版三套):

  1. 按顺序匹配,第一个匹配通过的规则即该资源的优先级,全部不匹配则被过滤;

  2. 数字越小优先级越高,越先被下载;

  3. 同一规则内各规则项为「与」关系,同类型规则项不能同时选择;

  4. 全局排除某规则项时,所有规则都要排除它

示例(优先特效/中文字幕,排除杜比与蓝光原盘,仅限 4K 和 1080P,1080P 优先):

SPECSUB & !BLU & !DOLBY & 1080P > CNSUB & !BLU & !DOLBY & 1080P > SPECSUB & BLU & !DOLBY & 4K > CNSUB & !BLU & !DOLBY & 4K

规则支持「分享/导入」,可快速复用他人配置。

② 自定义识别词捷径 → 词表):对命名不规范的资源用正则校正,支持四种格式(注意连接符两侧空格):

屏蔽词
被替换词 => 替换词
前定位词 <> 后定位词 >> 集偏移量(EP)
被替换词 => 替换词 && 前定位词 <> 后定位词 >> 集偏移量(EP)

替换词支持 {[tmdbid/doubanid=xxx;type=movie/tv;s=xx;e=xx]} 直接指定识别结果(不要把原标题整个替换掉);集偏移支持运算(EP+12*EP-1)。社区共享识别词可通过「共享识别词」插件订阅自动更新;若出现大面积识别异常,先排查共享词表。识别测试可用 WEB 右上角 捷径 → 识别

③ 自定义重命名(Jinja2 语法,设定 → 目录 中编辑)。默认模板:

{# 电影 #}
{{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}

{# 电视剧 #}
{{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}

可用变量包括 titleen_titleyearvideoFormatvideoCodecvideoBitaudioCodecreleaseGroupresourceTypeeditiontmdbidimdbiddoubanid 等;电视剧额外有 season_fmt(S01)、season_episode(S01E02)、episode_title 等。建议对每个变量加 {% if %} 判空。示例(文件名加入编码与位深):

{{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if videoCodec %} - {{videoCodec}}{% endif %}{% if videoBit %} {{videoBit}}{% endif %}{{fileExt}}

④ 二级分类策略:编辑 /config/category.yaml(或用「二级分类策略」插件),按 genre_idsoriginal_languageorigin_country/production_countriesrelease_year 等条件从上到下依次匹配,! 前缀表示排除;同分类下多条件为「与」,单条件多值(逗号分隔)为「或」。修改后目录设置中「自动分类」即按新策略生成二级目录。

3.12 日常使用流程速查

  • 看一部新电影Ctrl+K 搜影片 → 详情页点搜索 → 选资源下载(或直接点订阅)→ 完成后收到通知 → 媒体服务器已自动刷新可观看。

  • 追一部周更剧:搜到剧集点 ❤️ 订阅 → 系统每日自动刷新站点增量资源 → 出新集自动下载整理入库 → 微信/Telegram 收到「完成订阅」通知。

  • 豆瓣联动:安装「豆瓣想看」插件 → 豆瓣 App 标记想看 → 自动订阅下载。

  • 整理失败处理历史记录 找到失败记录 → 能确定原因就手动重新整理 → 不确定就点「智能助手整理」。

  • 远程操作:聊天窗口发「订阅 片名」加订阅;发片名搜资源;/redo id 重整理;/skills 管理 AI 技能。


第四部分:常见问题 FAQ

问题

处理方案

硬链接整理报「-1」错误

下载目录与媒体库目录跨盘/跨存储空间/单独映射,调整到同一存储空间并在同一路径映射下

重启后日志 No module named 'app.helper.sites'

自动更新被人为中断导致依赖不完整,重置/重建容器;建议配置代理加速更新

目录监控不自动整理

① 调大宿主机 inotify 限制并重启;② 网盘/SMB/NFS 目录开「兼容模式」;③ 改用下载器监控(5 分钟轮询)

搜索报 async_get_indexers 错误

认证/站点资源版本过旧,更新 Docker 镜像到最新

每次启动重复下载浏览器内核

确认映射 /moviepilot-v2/core:/moviepilot/.cloakbrowser

搜索结果比站点直接搜索少

属正常设计(精确匹配过滤);改用模糊搜索补充,或检查过滤规则

站点红色无法连接

更新 Cookie、检查代理与浏览器仿真、调大超时时间

下载完成想立即整理

QB「下载完成时运行外部程序」填入 curl "http://localhost:3000/api/v1/transfer/now?token=你的API_TOKEN"

UI 显示异常/无法滚动

删除自定义 CSS 并刷新;或头像 → 关于 MoviePilot → 清理浏览器缓存版本

日志/流式搜索被反代截断

反代开启 http2,超时时间调长(如 10 分钟)


结语

MoviePilot 把「找片—下载—整理—刮削—入库—通知」这条原本需要多个工具和大量手工操作的链路,压缩成了一次点击:

  • 对新手:Docker Compose 一键部署 + 初始化向导引导,半小时即可跑通「订阅 → 入库 → 通知」全流程;

  • 对进阶玩家:优先级规则、识别词、分类策略、洗版机制提供了足够精细的控制粒度;

  • 对折腾爱好者:300+ 插件、开放 API、MCP 接口与内置 AI 助手,能力边界还在不断扩展。

无论你是刚入坑 NAS 的新手,还是拥有几十 TB 影音库的资深玩家,它都能显著降低媒体库的维护成本。

参考资源

免责声明:本文仅为软件使用教程整理,内容来自公开官方文档。请遵守各站点规则与当地法律法规,仅下载和使用你有权访问的内容。

请勿在任何国内平台发布或引用此文章任何相关内容,请尽量避免在国内公共场合提及MoviePilot全称,如确实有需要请使用简称:MP

AI

MoviePilot 完全指南:从认识、部署到玩转 NAS 媒体库自动化

本文链接: MoviePilot 完全指南:从认识、部署到玩转 NAS 媒体库自动化

本文包含 AI 辅助内容 ,使用 ChatGPT 参与 资料整理,排版辅助 ,已由作者审核。

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录