MoviePilot 是 NasTools 作者的新项目,是一款 Nas 媒体库自动化管理工具,仅用于学习交流使用,请勿在国内的平台宣传此项目。
image-23.png
由于 MoviePilot 的部署依赖多个服务,以及相关的基础知识,需要一定的技术。在安装之前,默认你已经掌握或了解以下的内容:

  • Docker

    • 安装及基础的指令使用
      • Docker-compose 安装和使用
  • Linux 下的相关知识和指令操作

    • UID id -u
      • PID id -g
      • 查看端口占用命令 lsof -i:
      • 软链接、硬链接
      • Cron 表达式
      • 查看主机 IP ifconfig
  • PT 下载器

    • qbittorrent
      • transmission
  • 媒体服务器

    • emby
      • plex
      • jellyfin
  • PT 站点

安装

本指南默认采用 Debian12 Linux 系统进行安装部署。

获取 UID GID

ssh 服务器 ,输入 id -u id -g 分别获取 UID GID

  • UID=0

  • GID=0

创建目录

1. MoviePilot 目录

需要设置三个目录,存放配置和 core 数据,以及媒体数据

在 MoviePilot 目录下新建如下的目录结构

  • /MoviePilot/moviepilot/config → config 信息

  • /MoviePilot/moviepilot/core → 核心数据

  • /MoviePilot/media → 媒体数据 (文件硬链接目录)

2.QBitTorrent 目录

需要设置两个目录,一个用来映射下载目录,一个用来映射 QBitTorrent 的配置

在 MoviePilot 目录下新建如下的目录结构

  • /MoviePilot/qbittorrent → config 信息

  • /MoviePilot/media/downloads → 下载数据

4.Emby 目录

需要设置两个目录,一个映射媒体数据,一个映射配置目录

在 MoviePilot 目录下新建如下的目录结构

  • /MoviePilot/emby → config 信息

  • /MoviePilot/media → 媒体数据 (文件硬链接目录)

1
2
3
4
5
6
7
8
9
10
文件目录一览:

MoviePilot
├── emby
├── media
│ └── downloads
├── moviepilot
│ ├── config
│ └── core
└── qbittorrent

依赖安装

1. 安装 CookieCloud

CookieCloud 是一个和自架服务器同步 Cookie 的小工具,可以将浏览器的 Cookie 及 Local storage 同步到手机和云端,它支持端对端加密,可设定同步时间间隔。主要用来同步各大 PT 站点的 cookie 信息供 MoviePilot 自动同步导入使用。

1
docker run -d --name=cookiecloud -p 8088:8088 --restart=always easychen/cookiecloud:latest

【测试是否安装成功】

打开 http://:8088 出现 hello world 提示即安装服务端成功
image-25.png
【安装浏览器插件】

注意需要登录你的 PT 站点,一定要先登录上,否则后续 MoviePilot 启动时可能没有站点信息。

chrome 商店 下载安装插件后,进行参数配置后保存,然后手动测试是否同步成功。

  • 服务器地址 如果是局域网,填写 http://<ip>:8088 ,如果有公网,则填写公网地址

  • 用户KEY 可以自定义,也可以使用默认生成的,后面会用到

  • 端对端加密密码 可以自定义,也可以使用默认生成的,后面会用到

image-26.png

2. 安装 MoviePilot Emby qBitTorrent

下面给出完整的 docker-compose 文件,需要自行修改其中的变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
version: '3.3'

# MoviePilot 地址:https://github.com/jxxghp/MoviePilot

services:
qbittorrent:
image: 'nevinee/qbittorrent:latest'
container_name: qbittorrent
restart: always
tty: true
hostname: qbittorrent
volumes:
- '/MoviePilot/qbittorrent:/data' # 目录已提前创建好
- '/MoviePilot/media/downloads:/media/downloads' # 目录已提前创建好
tmpfs:
- '/tmp'
environment:
- 'QB_USERNAME=admin' # 自行修改
- 'QB_PASSWORD=adminadmin' # 自行修改
- 'BT_PORT=49678'
ports:
- target: 8080
published: 8080
protocol: tcp
- target: 49678
published: 49678
protocol: tcp
- target: 49678
published: 49678
protocol: udp
network_mode: bridge

emby:
container_name: emby
ports:
- target: 8096
published: 8096
protocol: tcp
- target: 8920
published: 8920
protocol: tcp
- target: 11900
published: 11900
protocol: udp
- target: 7359
published: 7359
protocol: udp
volumes:
- '/MoviePilot/emby:/config' # 目录已提前创建好
- '/MoviePilot/media:/data' # 目录已提前创建好
environment:
- TZ=Asia/Shanghai
restart: always
hostname: emby
network_mode: bridge
image: 'lovechen/embyserver:latest'

moviepilot:
ports:
- target: 3000
published: 3000
protocol: tcp
environment:
- 'UMASK=022'
- 'TZ=Asia/Shanghai'
# 重启更新
- 'MOVIEPILOT_AUTO_UPDATE=release'
# WEB服务端口
- 'NGINX_PORT=3000'
# 超级管理员用户名
- 'SUPERUSER=admin' # 自行修改
# 超级管理员初始密码
- 'SUPERUSER_PASSWORD=adminadmin' # 自行修改 需要启动后docker logs 查看
# 登录首页电影海报,`tmdb`/`bing`,默认`tmdb`
- 'WALLPAPER=tmdb'
# API密钥,在媒体服务器Webhook、微信回调等地址配置中需要加上?token=该值,建议修改为复杂字符串
- 'API_TOKEN=moviepilot'
# 网络代理(可选)
# - 'PROXY_HOST='
# TMDB API地址
- 'TMDB_API_DOMAIN=api.themoviedb.org'
# 下载保存目录
- 'DOWNLOAD_PATH=/media/downloads'
- 'DOWNLOAD_MOVIE_PATH=/media/downloads/movies'
- 'DOWNLOAD_TV_PATH=/media/downloads/tv'
- 'DOWNLOAD_ANIME_PATH=/media/downloads/anime'
# 下载站点字幕
- 'DOWNLOAD_SUBTITLE=false'
# 下载二级分类开关
- 'DOWNLOAD_CATEGORY=false'
# 下载器监控
- 'DOWNLOADER_MONITOR=true'
- 'SUBSCRIBE_MODE=spider'
- 'SUBSCRIBE_RSS_INTERVAL=30'
# 刮削入库的媒体文件
- 'SCRAP_METADATA=true'
- 'SCRAP_FOLLOW_TMDB=true'
# 种子标签
- 'TORRENT_TAG=MOVIEPILOT'
# 媒体库目录
- 'LIBRARY_PATH=/media'
- 'LIBRARY_MOVIE_NAME=movies'
- 'LIBRARY_TV_NAME=tv'
- 'LIBRARY_ANIME_NAME=anime'
# 媒体库二级分类开关
- 'LIBRARY_CATEGORY=false'
# 转移方式,支持link/copy/move/softlink
- 'TRANSFER_TYPE=link'
# 转移覆盖模式,默认为`size`,支持`nerver`/`size`/`always`,分别表示`不覆盖`/`根据文件大小覆盖(大覆盖小)`/`总是覆盖`
- 'OVERWRITE_MODE=size'
# CookieCloud服务器地址(默认可以不用修改)
- 'COOKIECLOUD_HOST=你的地址' # 自行修改
# CookieCloud用户KEY
- 'COOKIECLOUD_KEY=你的key' # 自行修改
# CookieCloud端对端加密密码
- 'COOKIECLOUD_PASSWORD=你的端对端密码' # 自行修改
# CookieCloud同步间隔(分钟)
- 'COOKIECLOUD_INTERVAL=20'
# CookieCloud对应的浏览器UA,可选,设置后可增加连接站点的成功率,同步站点后可以在管理界面中修改
- 'USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
- 'SUBSCRIBE_SEARCH=false'
# 交互搜索自动下载用户ID,使用,分割
- 'AUTO_DOWNLOAD_USER='

# 插件市场仓库地址,多个地址使用`,`分隔,保留最后的/
- 'PLUGIN_MARKET=https://raw.githubusercontent.com/jxxghp/MoviePilot-Plugins/main/'

# 消息通知渠道,支持 telegram/wechat/slack/synologychat
- 'MESSAGER=telegram'
- 'TELEGRAM_TOKEN=xxxxxx' # 自行修改
- 'TELEGRAM_CHAT_ID=xxxxxxxxxxxx' # 自行修改
# - 'TELEGRAM_USERS=xxxxxxxxxxxxx'
# - 'TELEGRAM_ADMINS=xxxxxxxxxxxxx'
# - 'WECHAT_CORPID='
# - 'WECHAT_APP_SECRET='
# - 'WECHAT_APP_ID='
# - 'WECHAT_TOKEN='
# - 'WECHAT_ENCODING_AESKEY='
# - 'WECHAT_ADMINS='
# - 'WECHAT_PROXY='
# - 'SLACK_OAUTH_TOKEN='
# - 'SLACK_APP_TOKEN='
# - 'SLACK_CHANNEL='
# - 'SYNOLOGYCHAT_WEBHOOK='
# - 'SYNOLOGYCHAT_TOKEN='

# 下载器,支持qbittorrent/transmission
- 'DOWNLOADER=qbittorrent'
- 'QB_HOST=http://ip:8080/' # 自行修改
- 'QB_USER=admin' # 自行修改
- 'QB_PASSWORD=adminadmin' # 自行修改
- 'QB_CATEGORY=false'
- 'QB_SEQUENTIAL=true'
- 'QB_FORCE_RESUME=false'
# - 'TR_HOST='
# - 'TR_USER='
# - 'TR_PASSWORD='

# 媒体服务器,支持emby/jellyfin/plex
- 'MEDIASERVER=emby'
- 'EMBY_HOST=http://ip:8096' # 自行修改
- 'EMBY_API_KEY=key' # 自行修改
# - 'JELLYFIN_HOST='
# - 'JELLYFIN_API_KEY='
# - 'PLEX_HOST='
# - 'PLEX_TOKEN='

# 媒体服务器同步间隔(小时),默认`6`,留空则不同步
- 'MEDIASERVER_SYNC_INTERVAL=6'
# 媒体服务器同步黑名单,多个媒体库名称使用,分割
- 'MEDIASERVER_SYNC_BLACKLIST='

# 认证站点,认证资源`v1.0.1`支持`iyuu`/`hhclub`/`audiences`/`hddolby`/`zmpt`/`freefarm`/`hdfans`/`wintersakura`/`leaves`/`1ptba`/`icc2022`/`ptlsp`/`xingtan`/`ptvicomo`
- 'AUTH_SITE=audiences'
- 'AUDIENCES_UID=' # 自行修改获取
- 'AUDIENCES_PASSKEY=' # 自行修改获取
# 大内存模式
- 'BIG_MEMORY_MODE=false'
# 电影重命名格式
- 'MOVIE_RENAME_FORMAT={{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}'
# 电视剧重命名格式
- 'TV_RENAME_FORMAT={{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}'
restart: always
tty: true
volumes:
- '/MoviePilot/moviepilot/config:/config'
- '/MoviePilot/moviepilot/core:/moviepilot'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
- '/MoviePilot/media:/media'
network_mode: bridge
hostname: moviepilot
container_name: moviepilot
image: 'jxxghp/moviepilot:latest'

下面是一些具体的参数解析

需要填写的参数和环境变量有很多,参考官方文档 , 建议复制后使用

  • 容器名称 随意填写,或者使用默认值

  • 勾选 启用自动重新启动

  • 端口设置-本地端口 设置为 3000

  • 存储空间设置

    • /MoviePilot/moviepilot/config/config
      • /MoviePilot/moviepilot/core/moviepilot
      • /var/run/docker.sock/var/run/docker.sock 映射宿主机 docker.sock 文件到容器 /var/run/docker.sock,以支持内建重启操作。
      • /MoviePilot/media/media
  • 环境变量 设置(key=value)

    • PUID=0 根据实际获取到的为准,填写错误有文件读写权限问题!
      • PGID=0 根据实际获取到的为准,填写错误有文件读写权限问题!
      • UMASK=022
      • TZ=Asia/Shanghai 时区
      • MOVIEPILOT_AUTO_UPDATE=release 重启更新
      • NGINX_PORT=3000 WEB 服务端口
      • SUPERUSER=xxxx 超管名,自己定义
      • SUPERUSER_PASSWORD=xxxxxx 超管密码,自定义即可,新版本会默认在 log 下生成,需要查看
      • WALLPAPER=tmdb 登录首页电影海报,tmdb/bing,默认 tmdb
      • API_TOKEN=moviepilot API 密钥,在媒体服务器 Webhook、微信回调等地址配置中需要加上?token=<该值>
      • PROXY_HOST= 网络代理,可选
      • TMDB_API_DOMAIN=api.themoviedb.org TMDB API 地址
      • DOWNLOAD_PATH=/media/downloads 下载保存目录,不要自定义
      • DOWNLOAD_MOVIE_PATH=/media/downloads/movies 电影下载目录,不要修改
      • DOWNLOAD_TV_PATH=/media/downloads/tv 电视剧下载目录,不要修改
      • DOWNLOAD_ANIME_PATH=/media/downloads/anime 动画下载目录,不要修改
      • DOWNLOAD_SUBTITLE=false 下载站点字幕
      • DOWNLOAD_CATEGORY=false 下载二级目录开关
      • DOWNLOADER_MONITOR=true 下载器监控
      • SUBSCRIBE_MODE=spider 订阅模式默认为 spider
      • SUBSCRIBE_RSS_INTERVAL=30 RSS 订阅模式刷新时间间隔(分钟)
      • SCRAP_METADATA=true 刮削入库的媒体文件
      • SCRAP_FOLLOW_TMDB=true 新增已入库媒体是否跟随 TMDB 信息变化
      • TORRENT_TAG=MOVIEPILOT 下载器种子标签
      • LIBRARY_PATH=/media 媒体库目录
      • LIBRARY_MOVIE_NAME=movies 电影媒体库目录名称
      • LIBRARY_TV_NAME=tv 电视剧媒体库目录称
      • LIBRARY_ANIME_NAME=anime 动漫媒体库目录称
      • LIBRARY_CATEGORY=false 媒体库二级分类开关
      • TRANSFER_TYPE=link 整理转移方式,支持 link/copy/move/softlink/rclone_copy/rclone_move ,推荐使用硬链接
      • OVERWRITE_MODE=size 转移覆盖模式,默认为 size,支持 nerver/size/always/latest,分别表示不覆盖同名文件 / 同名文件根据文件大小覆盖(大覆盖小)/ 总是覆盖同名文件 / 仅保留最新版本,删除旧版本文件(包括非同名文件)
      • COOKIECLOUD_HOST=http://:8088 cookie cloud 服务器地址
      • COOKIECLOUD_KEY=xxx cookie cloud 浏览器插件中设置的 key
      • COOKIECLOUD_PASSWORD=xxx cookie cloud 浏览器插件中设置的端对端加密秘钥
      • COOKIECLOUD_INTERVAL=20 CookieCloud 同步间隔(分钟)
      • USER_AGENT=USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 CookieCloud 对应的浏览器 UA,可选,设置后可增加连接站点的成功率,同步站点后可以在管理界面中修改
      • SUBSCRIBE_SEARCH=false 订阅搜索,true/false,默认 false
      • PLUGIN_MARKET=https://raw.githubusercontent.com/jxxghp/MoviePilot-Plugins/main/
      • MESSAGER=telegram 消息通知渠道,支持 telegram/wechat/slack/synologychat,开启多个渠道时使用 , 分隔。同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用 telegram。非必选项,如果不设置就不会有消息通知。
      • TELEGRAM_TOKEN=xxxx Telegram Bot Token
      • TELEGRAM_CHAT_ID=xxxxx Telegram Chat ID
      • DOWNLOADER=qbittorrent 下载器,支持 qbittorrent/transmission
      • QB_HOST=http://:8080 qbittorrent 地址,根据你自己设置的填写
      • QB_USER=admin qbittorrent 用户名,根据你设置的填写
      • QB_PASSWORD=adminadmin qbittorrent 密码,根据你设置的填写
      • QB_CATEGORY=false qbittorrent 分类自动管理
      • QB_SEQUENTIAL=true qbittorrent 按顺序下载
      • QB_FORCE_RESUME=false qbittorrent 忽略队列限制,强制继续
      • MEDIASERVER=emby 媒体服务器,支持 emby/jellyfin/plex
      • EMBY_HOST=http://:8096 Emby 服务器地址,,根据你设置的填写
      • EMBY_API_KEY=xxxxxxx Emby Api Key, 在 Emby 设置->高级->API密钥处生成,可以先不填,后面部署完成补充然后更新容器配置就行
      • MEDIASERVER_SYNC_INTERVAL=6
      • AUTH_SITE=hdfans 认证站点非常重要!需要填写 MoviePilot 支持的认证 PT 站点信息,完整的列表请看官方的支持,如果没有站点可以去电报群求药
      • HDFANS_UID=<站点 id>
      • HDFANS_PASSKEY=<站点秘钥>
      • BIG_MEMORY_MODE=false 大内存模式
      • MOVIE_RENAME_FORMAT=Docker 部署 自动化观影平台MoviePilot/Docker 部署 自动化观影平台MoviePilot 电影重命名格式
      • TV_RENAME_FORMAT=Docker 部署 自动化观影平台MoviePilot/Season /Docker 部署 自动化观影平台MoviePilot – 电视剧重命名格式

【测试】

打开 http://:3000 登录进入
image-27.png

参考链接

  • 支持的下载站点有

    • Nyaa、TorrentGalaxy、ACG.RIP、MiKan、动漫花园、EZTV、北邮人、白兔、我堡、海棠、梓喵、聆音、库非、红叶 PT、UBits、高清杜比、朋友、大青虫、铂金家、空间、艾薇、铂金学院、猪猪、小蚂蚁、织梦、OshenPT、冬樱、憨憨、CARPT、丐帮、熊猫高清、咖啡、iHDBits、百川、蝶粉、FileList、好多油、PT 时间、ultrahd、HDVIDEO、朱雀、北洋园、明教、兽站、JPTV、彩虹岛、老师、家园、莫妮卡、1PTBA、听听歌、学校、CinemaGeddon、TorrentLeech、天空、52pt、IPT、城市、葡萄、红豆饭、南洋、Uploads、伊甸园、备胎、打胶、馒头、吐鲁番、高清时间、2xFree、春天、观众、皇后、龙之家、瓷器、蝴蝶、幼儿园、阿童木、自由农场、高清视界、开心、他吹吹风、冰淇淋、天雪、烧包乐园、Rousi、OKPT、猫站、PTLSP、梓喵、象站、AGSVPT、星空
  • 安装:https://github.com/DDS-Derek/MoviePilot

  • 使用:https://github.com/Putarku/MoviePilot-Help