项目地址

GitHub仓库

项目文档

Docker Compose 部署

这里使用 postgresql + redis,如果嫌麻烦可以直接使用 sqlite,按需选择,更多详细内容自行去官方文档了解

networks:
  moviepilot:
    name: moviepilot
# 本设备是极空间,postgresql 不支持 ZFS 所以需要新建卷,按需更改
volumes:
  postgres_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /data/docker/postgresql
services:
  moviepilot:
    stdin_open: true # 是否打开标准输入流(交互模式),为 true 时容器可以保持运行并与用户交互
    tty: true # 是否分配伪终端,使容器的终端行为更像一个真实的终端
    container_name: moviepilot-v2 # 容器名称
    hostname: moviepilot-v2 # 容器主机名
    networks:
     - moviepilot
    ports:
     - '3000:3000'
     - '3001:3001'
    volumes:
      - '/data/media:/media' # 媒体库或下载库路径
      - '/data/docker/moviepilot-v2/config:/config' # moviepilot 的配置文件存放路径
      - "/data/docker/qbittorrent/config/qBittorrent/BT_backup:/BT_backup" # qbittorrent 种子位置
      - '/data/docker/moviepilot-v2/core:/moviepilot/.cache/ms-playwright' # 浏览器内核存放路径
      - '/var/run/docker.sock:/var/run/docker.sock:ro' # 用于获取宿主机的 docker 管理权,一般用于页面重启或自动更新
    environment:
      - 'NGINX_PORT=3000'
      - 'PORT=3001'
      - 'PUID=0'
      - 'PGID=0'
      - 'UMASK=000'
      - 'TZ=Asia/Shanghai'
      - 'SUPERUSER=admin'
      - 'SUPERUSER_PASSWORD=你的初始登录密码'
      - 'PROXY_HOST=http://192.168.31.114:12345' # 代理地址
      - 'DB_TYPE=postgresql'
      - 'DB_POSTGRESQL_HOST=postgresql'
      - 'DB_POSTGRESQL_PORT=5432'
      - 'DB_POSTGRESQL_DATABASE=moviepilot'
      - 'DB_POSTGRESQL_USERNAME=moviepilot'
      - 'DB_POSTGRESQL_PASSWORD=pg_password'
      - 'CACHE_BACKEND_TYPE=redis'
      - 'CACHE_BACKEND_URL=redis://:redis_password@redis:6379'
    restart: always
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy
    image: jxxghp/moviepilot-v2:latest

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

  postgresql:
    networks:
      - moviepilot
    image: postgres
    restart: always
    environment:
      POSTGRES_DB: moviepilot
      POSTGRES_USER: moviepilot
      POSTGRES_PASSWORD: pg_password
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U moviepilot -d moviepilot"]
      interval: 10s
      timeout: 5s
      retries: 5

  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    restart: always
    network_mode: host
    volumes:
      - "/data/docker/qbittorrent/config:/config"
      - "/data/media:/media"
    environment:
      - "PUID=0"
      - "PGID=0"
      - "TZ=Asia/Shanghai"
      - "WEBUI_PORT=9090"
      
  transmission:
    image: linuxserver/transmission:4.0.5
    container_name: transmission
    restart: always
    network_mode: host
    volumes:
      - "/data/docker/transmission/config:/config"
      - "/data/media:/media"
    environment:
      - "PUID=0"
      - "PGID=0"
      - "TZ=Asia/Shanghai"
      - "USER=admin"
      - "PASS=password"
      - "TRANSMISSION_WEB_HOME=/config/webui/trguing-web" # 第三方UI
      
  emby:
    image: amilys/embyserver:latest
    container_name: emby
    network_mode: host
    environment:
      - PUID=0  
      - PGID=0
    volumes:
      - '=/data/docker/emby/config:/config'
      - '/data/media:/media'
    restart: always

数据迁移(可选)

如果要从 SQLite 迁移存量数据到 PostgreSQL,可以使用 pgloader 工具,全新安装可忽略:

将MoviePilot的 user.db 文件放置到 PostgreSQL 的配置目录

在 PostgreSQL 容器内执行

# 进入容器
# docker exec -it postgresql bash
apt update
apt install pgloader

pgloader sqlite:////var/lib/postgresql/data/user.db postgresql://moviepilot:你的密码@localhost:5432/moviepilot

在 PostgreSQL 对应数据库中执行以下语句,并重启 MP,以触发数据库升级:

# 进入容器
# docker exec -it postgresql bash
# 连接到PostgreSQL
# psql -U moviepilot
update alembic_version set version_num = 'd58298a0879f';

系统配置

下载器

Snipaste_2025-08-10_02-09-09.png

Snipaste_2025-08-10_02-09-24.png

目录

Snipaste_2025-08-10_02-11-45.png

词表设置

自定义识别词

自定义制作组/字幕组

喵萌奶茶屋
风车字幕组
银色子弹字幕组
枫叶字幕组
诸神字幕组
❀拨雪寻春❀
VARYG
AI-Raws
ANi
SweetSub
LoliHouse
VCB-Studio
7³ACG
OPFans枫雪动漫
SilverBullet
APTX4869
Snow-Raws
B-Global
CR
KKTV
Baha
MyVideo
AMZN
KKTV
friDay
Disney+
LINETV
NF
Viu
Crunchyroll
Netflix
Amazon
MAX
AppleTV+
HMAX
BiliBili
Abema
CatchPlay
iTunes
Remux
ADWeb
NTb
FLUX
DSNP
银色子弹字幕组
RLWeb
Breeze@Sunny
Rain@Sunny
RLeaves

自定义占位符

\b(简繁内封|简繁日内封|简繁日英内封|简繁官字内封|官简内封|简日双语|简体内封|简体内嵌|繁体内嵌|简英双语|简繁外挂|简体|HDR|DoVi)\b

文件整理屏蔽词

__\w{6}/
Special Ending Movie
\[((TV|BD|\bBlu-ray\b)?\s*CM\s*\d{2,3})\]
\[Teaser.*?\]
\[PV.*?\]
\[NC[OPED]+.*?\]
\[S\d+\s+Recap(\s+\d+)?\]
Menu
Preview
\b(CDs|SPs|Scans|Bonus|映像特典|映像|specials|特典CD|Menu|Logo|Preview|/mv)\b
\b(NC)?(Disc|片头|OP|OVA|OAD|SP|ED|Advice|Trailer|BDMenu|片尾|PV|CM|Preview|MENU|Info|EDPV|SongSpot|BDSpot)(\d{0,2}|_ALL)\b
WiKi.sample

规则设置

自定义规则

[{"id":"Complete","name":"Complete","include":"(全|共)\\d(集|期)|完结|合集|Complete","exclude":""},{"id":"filterGlobal","name":"filterGlobal","include":"","exclude":"(?i)日语无字|先行|DV|MiniBD|DIY原盘|iPad|UPSCALE|AV1|BDMV|RMVB|DVD|vcd|480p|OPUS","seeders":""},{"id":"filerGroup","name":"filerGroup","include":"","exclude":"(?i)SubsPlease|Up to 21°C|VARYG|TELESYNC|NTb|sGnb|BHYS|DBD|HDH|COLLECTiVE|SRVFI|HDSPad"},{"id":"filterMovie","name":"filterMovie","include":"","exclude":"","seeders":"","size_range":"0-22000"},{"id":"filterSeries","name":"filterSeries","include":"","exclude":"","size_range":"0-102400"},{"id":"AnimeGroup","name":"AnimeGroup","include":"7³ACG|VCB-Studio","exclude":"","size_range":""},{"id":"Audiences","name":"Audiences","include":"ADE|ADWeb","exclude":"","seeders":""},{"id":"HHWEB","name":"HHWEB","include":"HHWEB","exclude":""},{"id":"Crunchyroll","name":"Crunchyroll","include":"CR|Crunchyroll","exclude":""},{"id":"Netflix","name":"Netflix","include":"Netflix|NF","exclude":""},{"id":"B-Global","name":"B-Global","include":"B-Global|BG","exclude":""},{"id":"AMZN","name":"AMZN","include":"AMZN|Amazon","exclude":""},{"id":"HQ","name":"HQ","include":"HQ|高码|EDR","exclude":"","size_range":""},{"id":"DDP","name":"DDP","include":"DDP","exclude":""}]

优先级规则

[{"name":"前置过滤","rule_string":"filterGlobal& !BLU & !REMUX & !3D & !DOLBY &filerGroup","media_type":"","category":""},{"name":"动画电影","rule_string":" SPECSUB & 4K & BLURAY & H265 > CNSUB & 4K & BLURAY & H265 > CNSUB & 4K & BLURAY > CNSUB & 1080P & BLURAY > CNSUB & 4K > CNSUB & 1080P ","media_type":"电影","category":"动画电影"},{"name":"华语电影","rule_string":" 4K & BLURAY & H265 > 1080P & BLURAY > 4K > 1080P ","media_type":"电影","category":"华语电影"},{"name":"外语电影","rule_string":" SPECSUB & 4K & BLURAY & H265 &filterMovie> CNSUB & 4K & BLURAY & H265 &filterMovie> CNSUB & 1080P & BLURAY &filterMovie> CNSUB & 4K &filterMovie> CNSUB & 1080P &filterMovie","media_type":"电影","category":"外语电影"},{"name":"日番","rule_string":"AnimeGroup& CNSUB & BLURAY & 1080P >Audiences& H265 & BLURAY & 1080P >Audiences&AMZN&HHWEB& CNSUB & 1080P >Audiences&Crunchyroll& CNSUB & 1080P >Audiences&Netflix&HHWEB& CNSUB & 1080P >Audiences&B-Global& 4K & CNSUB >Audiences&B-Global& 1080P & CNSUB >Audiences&HHWEB& CNSUB & 1080P > CNSUB & BLURAY & 1080P > 1080P & CNSUB > 1080P ","media_type":"电视剧","category":"日番"},{"name":"国漫","rule_string":" 4K &Audiences&HHWEB&DDP> 4K &Audiences&HHWEB> 1080P &Audiences&HHWEB> 4K > 1080P > 720P ","media_type":"电视剧","category":"国漫"},{"name":"纪录片","rule_string":" 4K & BLURAY > 1080P & BLURAY > 4K > 1080P ","media_type":"电视剧","category":"纪录片"},{"name":"综艺","rule_string":" 4K & WEBDL &Complete> 4K & WEBDL &HHWEB> WEBDL & 1080P &HHWEB> 4K & WEBDL &Audiences> 1080P &Audiences& WEBDL > 1080P ","media_type":"电视剧","category":"综艺"},{"name":"国产剧","rule_string":" 4K & WEBDL &HQ> 4K & WEBDL > 4K & WEBDL > 1080P > 720P ","media_type":"电视剧","category":"国产剧"},{"name":"欧美剧","rule_string":" SPECSUB & 1080P & BLURAY &filterSeries> 1080P & WEBDL & CNSUB &filterSeries> CNSUB &filterSeries","media_type":"电视剧","category":"欧美剧"},{"name":"日韩剧","rule_string":" SPECSUB & 1080P & BLURAY &filterSeries> CNSUB & 1080P &filterSeries> 1080P & CNSUB &filterSeries> CNSUB &filterSeries ","media_type":"电视剧","category":"日韩剧"},{"name":"现场","rule_string":" CNSUB & 4K > CNSUB & 1080P > 4K > 1080P > !720P ","media_type":"电影","category":"现场"}]
  • 前置过滤:用于在进行其他筛选之前,排除特定的资源格式。rule_string 包含过滤条件 filterGlobal,并排除了 “BLU”、“REMUX”、“3D” 和 “DOLBY” 格式,同时排除了小组过滤条件 filerGroup

  • 动画电影:针对动画电影的优先规则,按以下顺序选择:

    • 有外挂字幕的 4K H265 蓝光

    • 有中文内嵌字幕的 4K H265 蓝光

    • 有中文内嵌字幕的 4K 蓝光

    • 有中文内嵌字幕的 1080P 蓝光

    • 有中文内嵌字幕的 4K 或 1080P

  • 华语电影:针对华语电影的优先规则,按以下顺序选择:

    • 4K H265 蓝光

    • 1080P 蓝光

    • 4K 或 1080P

  • 外语电影:针对外语电影的优先规则,结合 filterMovie 的条件,按以下顺序选择:

    • 有外挂字幕的 4K H265 蓝光

    • 有中文内嵌字幕的 4K H265 蓝光

    • 有中文内嵌字幕的 1080P 蓝光

    • 有中文内嵌字幕的 4K 或 1080P

  • 日番:针对日本动漫剧集的优先规则,按以下顺序选择:

    • 动漫小组资源,包含中文内嵌字幕的 1080P 蓝光

    • 包含外挂字幕的 1080P H265 蓝光或来自特定平台的 1080P

    • 各种平台的 4K 或 1080P

  • 国漫:针对中国动漫剧集的优先规则,按以下顺序选择:

    • 包含外挂字幕的 4K,优先有 DDP 音轨的资源

    • 各种 1080P 和 4K

  • 纪录片:针对纪录片资源的优先规则,按以下顺序选择:

    • 4K 蓝光

    • 1080P 蓝光

    • 各种 4K 和 1080P

  • 综艺:针对综艺节目的优先规则,按以下顺序选择:

    • 完整的 4K WEBDL

    • 包含 HHWEB 或 Audiences 字幕组的 4K 或 1080P WEBDL

  • 国产剧:针对国产电视剧的优先规则,按以下顺序选择:

    • 高清 4K WEBDL,优先包含 HQ 的高码率资源

    • 各种 4K、1080P 和 720P 的 WEBDL

  • 欧美剧:针对欧美电视剧的优先规则,结合 filterSeries 的条件,按以下顺序选择:

    • 有外挂字幕的 1080P 蓝光

    • 1080P WEBDL,包含中文内嵌字幕

    • 其他包含中文内嵌字幕的资源

  • 日韩剧:针对日韩电视剧的优先规则,按以下顺序选择:

    • 有外挂字幕的 1080P 蓝光

    • 包含中文内嵌字幕的 1080P 资源

  • 现场:针对现场表演或现场记录的资源,按以下顺序选择:

    • 中文内嵌字幕的 4K 或 1080P

    • 排除 720P

插件配置

二级分类策略

####### 配置说明 #######
# 1. 该配置文件用于配置电影和电视剧的分类策略,配置后程序会按照配置的分类策略名称进行分类,配置文件采用yaml格式,需要严格附合语法规则
# 2. 配置文件中的一级分类名称:`movie`、`tv` 为固定名称不可修改,二级名称同时也是目录名称,会按先后顺序匹配,匹配后程序会按这个名称建立二级目录
# 3. 支持的分类条件:
#   `original_language` 语种,具体含义参考下方字典
#   `production_countries` 国家或地区(电影)、`origin_country` 国家或地区(电视剧),具体含义参考下方字典
#   `genre_ids` 内容类型,具体含义参考下方字典
#   `release_year` 发行年份,格式:YYYY,电影实际对应`release_date`字段,电视剧实际对应`first_air_date`字段,支持范围设定,如:`YYYY-YYYY`
#   themoviedb 详情API返回的其它一级字段
# 4. 配置多项条件时需要同时满足,一个条件需要匹配多个值是使用`,`分隔
# 5. !条件值表示排除该值

# 配置电影的分类策略
movie:
  # 分类名同时也是目录名
  动画电影:
    # 匹配 genre_ids 内容类型,16是动漫
    genre_ids: '16'
  华语电影:
    # 匹配语种
    original_language: 'zh,cn,bo,za'
  演唱会:
    # 匹配 genre_ids 内容类型,10402是演唱会
    genre_ids: '10402'
  # 未匹配以上条件时,分类为外语电影
  外语电影:

# 配置电视剧的分类策略
tv:
  # 分类名同时也是目录名
  国漫:
    # 匹配 genre_ids 内容类型,16是动漫
    genre_ids: '16'
    # 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
    origin_country: 'CN,TW,HK'
  日番:
    # 匹配 genre_ids 内容类型,16是动漫
    genre_ids: '16'
    # 匹配 origin_country 国家,JP是日本
    origin_country: 'JP'
  纪录片:
     # 匹配 genre_ids 内容类型,99是纪录片
    genre_ids: '99'
  儿童:
    # 匹配 genre_ids 内容类型,10762是儿童
    genre_ids: '10762'
  综艺:
    # 匹配 genre_ids 内容类型,10764 10767都是综艺
    genre_ids: '10764,10767'
  国产剧:
    # 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
    origin_country: 'CN,TW,HK'
  欧美剧:
    # 匹配 origin_country 国家,主要欧美国家列表
    origin_country: 'US,FR,GB,DE,ES,IT,NL,PT,RU,UK'
  日韩剧:
    # 匹配 origin_country 国家,主要亚洲国家列表
    origin_country: 'JP,KP,KR,TH,IN,SG'
  # 未匹配以上分类,则命名为未分类
  未分类:

## genre_ids 内容类型 字典,注意部分中英文是不一样的
#	28	Action
#	12	Adventure
#	16	Animation
#	35	Comedy
#	80	Crime
#	99	Documentary
#	18	Drama
#	10751	Family
#	14	Fantasy
#	36	History
#	27	Horror
#	10402	Music
#	9648	Mystery
#	10749	Romance
#	878  Science Fiction
#	10770	TV Movie
#	53	Thriller
#	10752	War
#	37	Western
#	28	动作
#	12	冒险
#	16	动画
#	35	喜剧
#	80	犯罪
#	99	纪录
#	18	剧情
#	10751	家庭
#	14	奇幻
#	36	历史
#	27	恐怖
#	10402	音乐
#	9648	悬疑
#	10749	爱情
#	878	科幻
#	10770	电视电影
#	53	惊悚
#	10752	战争
#	37	西部

## original_language 语种 字典
#	af	南非语
#	ar	阿拉伯语
#	az	阿塞拜疆语
#	be	比利时语
#	bg	保加利亚语
#	ca	加泰隆语
#	cs	捷克语
#	cy	威尔士语
#	da	丹麦语
#	de	德语
#	dv	第维埃语
#	el	希腊语
#	en	英语
#	eo	世界语
#	es	西班牙语
#	et	爱沙尼亚语
#	eu	巴士克语
#	fa	法斯语
#	fi	芬兰语
#	fo	法罗语
#	fr	法语
#	gl	加里西亚语
#	gu	古吉拉特语
#	he	希伯来语
#	hi	印地语
#	hr	克罗地亚语
#	hu	匈牙利语
#	hy	亚美尼亚语
#	id	印度尼西亚语
#	is	冰岛语
#	it	意大利语
#	ja	日语
#	ka	格鲁吉亚语
#	kk	哈萨克语
#	kn	卡纳拉语
#	ko	朝鲜语
#	kok	孔卡尼语
#	ky	吉尔吉斯语
#	lt	立陶宛语
#	lv	拉脱维亚语
#	mi	毛利语
#	mk	马其顿语
#	mn	蒙古语
#	mr	马拉地语
#	ms	马来语
#	mt	马耳他语
#	nb	挪威语(伯克梅尔)
#	nl	荷兰语
#	ns	北梭托语
#	pa	旁遮普语
#	pl	波兰语
#	pt	葡萄牙语
#	qu	克丘亚语
#	ro	罗马尼亚语
#	ru	俄语
#	sa	梵文
#	se	北萨摩斯语
#	sk	斯洛伐克语
#	sl	斯洛文尼亚语
#	sq	阿尔巴尼亚语
#	sv	瑞典语
#	sw	斯瓦希里语
#	syr	叙利亚语
#	ta	泰米尔语
#	te	泰卢固语
#	th	泰语
#	tl	塔加路语
#	tn	茨瓦纳语
#	tr	土耳其语
#	ts	宗加语
#	tt	鞑靼语
#	uk	乌克兰语
#	ur	乌都语
#	uz	乌兹别克语
#	vi	越南语
#	xh	班图语
#	zh	中文
#	cn	中文
#	zu	祖鲁语

## origin_country/production_countries 国家地区 字典
#	AR	阿根廷
#	AU	澳大利亚
#	BE	比利时
#	BR	巴西
#	CA	加拿大
#	CH	瑞士
#	CL	智利
#	CO	哥伦比亚
#	CZ	捷克
#	DE	德国
#	DK	丹麦
#	EG	埃及
#	ES	西班牙
#	FR	法国
#	GR	希腊
#	HK	香港
#	IL	以色列
#	IN	印度
#	IQ	伊拉克
#	IR	伊朗
#	IT	意大利
#	JP	日本
#	MM	缅甸
#	MO	澳门
#	MX	墨西哥
#	MY	马来西亚
#	NL	荷兰
#	NO	挪威
#	PH	菲律宾
#	PK	巴基斯坦
#	PL	波兰
#	RU	俄罗斯
#	SE	瑞典
#	SG	新加坡
#	TH	泰国
#	TR	土耳其
#	US	美国
#	VN	越南
#	CN	中国 内地
#	GB	英国
#	TW	中国台湾
#	NZ	新西兰
#	SA	沙特阿拉伯
#	LA	老挝
#	KP	朝鲜 北朝鲜
#	KR	韩国 南朝鲜
#	PT	葡萄牙
#	MN	蒙古国 蒙古

站点自动签到

自动转移做种

IYUU自动辅种

下载器助手