好吧,其实不是升级,单纯是unraid升级之后发现mp起不起来了,再加上之前的v1一直有些奇奇怪怪的小问题(过滤规则改动导致资源老是下错地方,tg机器人搜索电视剧得加季导致挂削错误等等),想着干脆升级到V2算了,说不定会有些改善。
1 V1数据备份
尽管我很想把我存储的几个站点相关的cooke全部拉下来,还有什么类型下到什么文件夹的规则设置,哦还有各种搜索过滤设置,但很可惜我启动不起来了,只能暂时存储了v1的app.env和category.yaml以及整个appdata打包。
2 安装V2
访问Wiki,查看环境准备以及安装指引。
2.1 环境准备
部分功能基于文件系统监控实现(如目录监控等),监控的文件较多时,往往会因为操作系统默认允许的文件句柄数太小导致报错,相关功能失效,需在宿主机操作系统上(不是docker容器内)执行以下命令并重启生效:
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
经实验,我的文件规模不使用这个命令,目录监控已经无效了。
2.2 Docker 部署
直接使用Docker CLI:
docker run -itd \
--name moviepilot-v2 \
--hostname moviepilot-v2 \
--network host \
# --network bridge \
# -p 3000:3000 \
# -p 3001:3001 \
-v /media:/media \
-v /moviepilot-v2/config:/config \
-v /moviepilot-v2/core:/moviepilot/.cache/ms-playwright \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e 'NGINX_PORT=3000' \
-e 'PORT=3001' \
-e 'PUID=0' \
-e 'PGID=0' \
-e 'UMASK=000' \
-e 'TZ=Asia/Shanghai' \
# -e 'AUTH_SITE=v2.0.7+版本以后可不设置,直接通过 UI 配置' \
# -e 'IYUU_SIGN=xxxx' \
-e 'SUPERUSER=admin' \
# -e 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串' \
--restart always \
jxxghp/moviepilot-v2:latest
Docker Compose:
version: '3.3'
services:
moviepilot:
stdin_open: true
tty: true
container_name: moviepilot-v2
hostname: moviepilot-v2
network_mode: host
# networks:
# - moviepilot
# ports:
# - '3000:3000'
# - '3001:3001'
volumes:
- '/media:/media'
- '/moviepilot-v2/config:/config'
- '/moviepilot-v2/core:/moviepilot/.cache/ms-playwright'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
environment:
- 'NGINX_PORT=3000'
- 'PORT=3001'
- 'PUID=0'
- 'PGID=0'
- 'UMASK=000'
- 'TZ=Asia/Shanghai'
# - 'AUTH_SITE=iyuu' # v2.0.7+版本以后,可不设置,直接通过 UI 配置
# - 'IYUU_SIGN=xxxx'
- 'SUPERUSER=admin' # 设置超级用户
# - 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串'
restart: always
image: jxxghp/moviepilot-v2:latest
# networks:
# moviepilot:
# name: moviepilot
由于我使用的是Unraid,还有几个选项需要配置下。
Repository URL:https://hub.docker.com/r/jxxghp/moviepilot
Icon LInk:https://raw.githubusercontent.com/jxxghp/MoviePilot-Frontend/main/public/logo.png
WebUI:http://[IP]:[PORT:3000]
AUTH_SITE:*****
HDFANS_UID:*****
HDFANS_PASSKEY:********
容器运行成功后查看日志
FFMPEG playwright build v1009 downloaded to /moviepilot/.cache/ms-playwright/ffmpeg-1009
INFO: config.py - 'API_TOKEN' 未设置,已随机生成新的【API_TOKEN】***
INFO: 294b007932ef_2_0_0.py - 【超级管理员初始密码】
请登录系统后在设定中修改。 注:该密码只会显示一次,请注意保存。
...
INFO: category.py - 已加载二级分类策略 category.yaml
...
INFO: torrents.py - 站点资源版本:1.8.3
INFO: torrents.py - 认证资源版本:2.1.1
INFO: torrents.py - 开始清理种子缓存数据 ...
INFO: torrents.py - 种子缓存数据清理完成
INFO: Started server process [130]
INFO: Waiting for application startup.
INFO: resource.py - 开始检测资源包版本...
INFO: resource.py - 最新资源包版本:v61
INFO: resource.py - 所有资源已最新,无需更新
INFO: modules_initializer.py - 用户认证失败,站点认证参数未设置,无法自动进行用户认证!
INFO: chain - 发送消息:channel=None,source=None,title=MoviePilot用户认证, text=用户认证失败,站点相关功能将无法使用!,userid=None
INFO: chain - NotificationType.Manual 的消息已设置发送给管理员
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:3001 (Press CTRL+C to quit)
也可以使用强哥版。进入 SSH 后运行以下命令导入模板,然后新增容器时,选择刚刚导入的模板:
curl -sL https://gist.githubusercontent.com/hbq0405/8d6ebbeafe5681fc01d03deb04f8f992/raw/moviepilot.xml -o /boot/config/plugins/dockerMan/templates-user/MoviePilot-V2.xml
3 配置设置
3.1 用户认证
当然可以像以前一样在环境变量或者app.env里面设置,或者更先进一点,点击用户头像 -> 用户认证。
3.2 基础配置
- 基础设置->高级设置->大内存
- 添加下载器(不要开启自动分类管理)
- 添加媒体服务器
- 配置Cookiecloud
目前的站点列表:
馒头比较特殊,不使用Cookie,需要:cyanbug.net hdfans.org www.hdkyl.in hdtime.org carpt.net pt.soulvoice.club pt.btschool.club www.oshen.win kufei.org mikanani.me //公开站点- 获取Authorization头
- 控制台->实验室->生成存取令牌
进入每个站点获取RSS(可选)(下面长一点那个)
3.3 目录配置(旧)
目录配置稍微有点绕。
设定 中可统一设定下载和媒体库目录,可添加多个目录配置项,系统按先后顺序依次匹配,匹配到的第一个附合条件的目录做为使用目录。通过拖动卡片调整目录项的优先顺序,一般情况下需要细化的目录需要调整到前面才能生效。
下载目录和媒体库目录均支持两级分类体系:
- 一级分类为
媒体类型,固定分为:电影、电视剧。 - 二级分类为
媒体类别,通过分类策略结合TheMovieDb的元数据确定分类。
目录设置时请关注以下特性:
媒体类型和媒体类别为使用这个目录的判定条件,按媒体的元数据进行匹配,全部代表匹配通过。自动分类只有在媒体类型和媒体类别至少其中一个为全部时才会生效。- 当
自动分类为关时,目录以设置的路径为准,不会自动创建子目录。 - 当
自动分类为开时:- 如果
媒体类型为全部、媒体类别为全部,会自动在设定路径下生成一级分类目录和二级分类目录; - 如果
媒体类型不为全部、媒体类别为全部,会自动在设定路径下创建二级分类目录; - 如果
媒体类型不为全部、媒体类别不为全部,以设定路径为准不会自动创建子目录。
- 如果
3.3.1 二级分类策略
可以通过编辑 /config/category.yml 文件来自定义二级分类策略,也可以通过插件二级分类策略编辑。
####### 一个范例 #######
# 1. 该配置文件用于配置电影和电视剧的分类策略,配置后程序会按照配置的分类策略名称进行分类,配置文件采用yaml格式,需要严格附合语法规则
# 2. 配置文件中的一级分类名称:`movie`、`tv` 为固定名称不可修改,二级名称同时也是目录名称,会按先后顺序匹配,匹配后程序会按这个名称建立二级目录
# 3. 支持的分类条件:
# `original_language` 语种,具体含义参考下方字典
# `production_countries` 国家或地区(电影)、`origin_country` 国家或地区(电视剧),具体含义参考下方字典
# `genre_ids` 内容类型,具体含义参考下方字典
# themoviedb 详情API返回的其它一级字段
# 4. 配置多项条件时需要同时满足,一个条件需要匹配多个值是使用`,`分隔
# 配置电影的分类策略
movie:
# 分类名同时也是目录名
动画电影:
# 匹配 genre_ids 内容类型,16是动漫
genre_ids: '16'
华语电影:
# 匹配语种
original_language: 'zh,cn,bo,za'
日语电影:
# 匹配语种
origin_country: 'JP'
韩语电影:
origin_country: 'KR'
欧美电影:
# 匹配语种
original_language: 'en'
# 未匹配以上条件时,分类为外语电影
外语电影:
# 配置电视剧的分类策略
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 内容类型,16是动漫
genre_ids: '16'
# 匹配 origin_country 国家,US是美国
origin_country: 'US'
其它动漫:
# 匹配 genre_ids 内容类型,16是动漫
genre_ids: '16'
纪录片:
# 匹配 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'
韩剧:
# 匹配 origin_country 国家,韩国朝鲜
origin_country: 'KR'
# 未匹配以上分类,则命名为未分类
其它剧集:
## 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 蒙古国 蒙古
3.3.2 界面配置
如图所示(动漫在新版本已经不被认为是一级分类):

PS: 并不完全正确
3.4 目录配置(新)
从群里loot了一份强哥版的配置文件,感觉比自己琢磨的要好用,关键点在于摈弃mp界面上复杂的目录识别设置,直接把多级目录写在category.yaml中。
3.4.1 目录规划
第一步:目录规划,首先要确认存放媒体的地方以及如何规划。大佬可以跳过这一段,小白最好老老实实按部就班操作。
-
先设置个共享目录,例如:media,然后在该目录下分别创建downloads目录存放下载源文件,和links目录存放硬链接后的媒体库文件。小白放心,这两个目录只会占用一份磁盘空间
-
相关容器(MP、QB、EMBY)分别映射该共享目录保持映射一致,例如:/vol3/1000/media:/media
-
确认以上操作无误后,即可开始正式配置。
3.4.2 qBittorrent 相关
- 启用子分类并配置默认保存路径
- 更改默认监听端口
3.4.3 MoviePilot 相关
qBittorret自动分类管理
开启该功能,则会在qBittorrent自动生成分类并按分类路径下载,不开启则没有分类全部下载到默认目录。权衡之后我选择了关闭。
二级分类策略配置(根据自身情况做了一些改动)
movie:
电影/动画电影:
genre_ids: '16'
电影/港台电影:
origin_country: 'TW,HK'
电影/国产电影:
origin_country: 'CN'
电影/日语电影:
origin_country: 'JP'
电影/韩语电影:
origin_country: 'KP,KR'
电影/欧美电影:
original_language: 'en'
电影/外语电影:
tv:
动漫/国漫:
genre_ids: '16'
origin_country: 'CN,TW,HK'
动漫/美漫:
genre_ids: '16'
origin_country: 'US,FR,GB,DE,ES,IT,NL,PT,RU,UK'
动漫/日番:
genre_ids: '16'
origin_country: 'JP'
其他/纪录片:
genre_ids: '99'
其他/综艺:
genre_ids: '10764,10767'
电视剧/港台剧:
origin_country: 'TW,HK'
电视剧/国产剧:
origin_country: 'CN'
电视剧/日剧:
origin_country: 'JP'
电视剧/韩剧:
origin_country: 'KP,KR'
电视剧/南亚剧:
origin_country: 'TH,IN,SG'
电视剧/欧美剧:
origin_country: 'US,FR,GB,DE,ES,IT,NL,PT,RU,UK'
电视剧/其它剧集:
敲重点:此分类方案不再依靠TMDB划分电影、电视剧大类。分类名斜杠前面的即是一级分类,斜杠后面的则是二级分类。也就是你完全可以把TMDB电影类的动画电影,强行塞进动漫大类,具体怎么玩可以自由发挥。
目录结构

重点:一定要关闭按类型分类,开启按类别分类,其他建议按图设置。仅需设置一个目录,不要画蛇添足设置多个目录。
3.5 刮削设置
默认语法:
{{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}}
电视剧缺失了集标题,不是很爽,做一些改动
{{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode_title %} - {{episode_title}}{% elif episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}
是否有用存疑(你好有的)。
3.6 优先级配置
[{"name":"分辨率4K & 1080P","rule_string":" 4K > 1080P ","media_type":"","category":""},{"name":"高动态优先","media_type":"","category":"","rule_string":" DOLBY > HDR > !3D "},{"name":"BD优先","media_type":"","category":"","rule_string":" BLU > BLURAY > !3D "},{"name":"特效中文字幕优先","media_type":"","category":"","rule_string":" SPECSUB > CNSUB > !3D "},{"name":"4K only","media_type":"","category":"","rule_string":" UHD > 4K "}]
3.7 站点配置
cookiecloud配置好了并同步过了应该在站点管理中发现站点自己添加完毕了(馒头等除外),如果有需求自己生成并添加RSS。设置搜索使用的站点。
3.8 订阅配置
一言以蔽之:使用配置的优先级规则,画质从高到低筛选。设置订阅使用的站点。
3.9 通知配置
调整通知发送范围。
3.9.1 Telegram
3.9.2 企业微信
// TODO