前言

哪个男孩不想拥有一台自动化观影的NAS?自动化观影都快变成NAS玩家的主线任务了,十个NAS佬九个折腾自动化观影。

众所周知,国内观影条件不是很理想。资源不集中,想一个会员看遍所有影片几乎不可能;超前点播、SVIP、VVIP会员层出不穷,多次付费已经是常态,倒也不是抵制付费正版,而是VIP还要分阶级,体验割裂;劣迹艺人导致影片下架,也不是洗劣迹艺人,但是有时我只是想回顾一下某些片段;审核机制导致优秀外剧无法引进,有些不符合核心价值观的外剧有一说一还是挺好看的,哪怕引进了也会有圣光暗牧(你可能是正版影片的受害者)。

因此,古老的下载反而成了国内流媒体最佳的观影体验。

这篇教程是面向完全的小白,如果你刚刚入坑NAS,建议还是去了解一下什么是docker。

顺带一提,有些东西有点复杂,我文笔也有限,因此让ChatGPT辅助我编写,所以就不要吐槽某某段AI味很重了。

注意MoviePilot项目以及PT站点在国内公开场合(包括但不限于贴吧、小红书、视频平台、QQ群)不要提及!不要提及!不要提及!

事前准备

  • 1个受认证的PT账号

  • 1台飞牛NAS(如果你是群晖、威联通的话也行,但是需要自己变通)

  • 一个良好的网络环境(没想到docker也被墙了)

以上便是需要的所有东西了,接下来我来解释一下其中的专有名词和部署规划。

名词解释

PT

PT是什么?很多小白都会有这样的疑惑,听大佬说很厉害,但是又不让自己去看。PT其实就是私有的BT。

当年正是互联网百花齐放的时候,大家秉持着,你有一份资源我有一份资源,咱们交换就有两份资源的心态,在网络上交换着资源。我下载你的资源,再上传给你需要的资源,非常美好。

后面来了某小蓝鸟,一把把重要的资源拢在了自己这里,你不开会员,就别想高速下载,变相切断了P2P连接。
于是就产生了小圈子的PT,统计大家的上传下载,遇见那种光下载不保种的人就踢出去,同时也采用邀请制,筛选玩家。

Docker

Docker就是一个小型化的虚拟机,开发者把项目打包好,我们用docker部署,这样就不用担心环境的问题,就能顺畅运行项目。

TMDB

TMDB是一个网站,它上面收录的绝大多数的电视剧和电影的详细信息,包括封面、海报、徽标、演员等,且拥有唯一的编号。通过它可以对资源进行识别。

刮削

刮削就是根据文件名去数据库(如 TMDB)自动匹配并下载影视的封面、简介和演员信息。

元数据

元数据是描述文件内容的信息,比如电影的名称、年份、封面、简介、演员等。

UPnP

UPnP 是一种让软件自动在路由器上打开端口、实现外网访问的省事配置。

硬链接

硬链接是让同一份文件在多个目录中同时存在,但实际只占用一份磁盘空间。

部署规划

MoviePilot项目集合

MoviePilot(以下简称MP)是本教程的核心,它是一个观影助手,依据TMDB在PT站中寻找我们需要的影片,能够对影片进行订阅、下载、整理等功能。项目中还包含Redis(内存数据结构存储)、PostgreSQL(数据库)、PGLoader(数据库迁移)项目。

这些附加项目中,Redis和PostgreSQL至关重要,如果这俩没启动,MP也无法正常运行,PGLoader是一个数据库迁移容器,正常情况下只在第一次部署的时候会启动一次,后续将不再启动。

Emby

Emby是一个影视服务器,在本教程中,将由它完成影片的刮削,原因是由Emby进行刮削更加灵活,可以简单快速的对封面海报等元数据进行修改。

Emby也拥有强大的生态,你可以在里面安装各种插件,例如弹幕插件、神医助手等,满足你的绝大部分要求。

Emby也能对观影用户进行管理,实现每个人的观影记录不混淆。

但是Emby本身是需要付费的,本教程为了能流畅演示所以使用的是学习版,但是还是希望大家有能力的话进行购买。

Qbittorrent

这是一个BT下载器,属于PT推荐的下载器之一,当然你也可以使用Transmission进行替换,但是注意Transmission不能选用4.0.6版本的,因为这个版本有BUG,所以各大PT站都禁用这一版本。

TMDB本地缓存

这是一个进阶的项目,因为MP和Emby需要常常请求TMDB上的数据,而TMDB的环境也是因人而异,有些人的网络环境很稳定,有些人不稳定导致MP常常报错,且会触发检索失败,所以通过这个项目将请求过的TMDB的API和图片缓存到本地,提高MP的访问速度。

项目流程逻辑分解

订阅流程大致如下图:

flowchart TD A[添加订阅影片] --> B[访问 TMDB 获取影片信息] B --> B1[获取 TMDB ID<br/>影片名称 / 别名] B1 --> C[站点资源搜索] C --> C1[使用名称 / 别名 / TMDB ID 搜索] C1 --> D{是否命中资源} D -->|是| E[调用预设筛选规则] D -->|否| B E --> E1[分辨率 / 编码格式<br/>体积 / 标签等] E1 --> F[发送种子到下载器] F --> G[下载器开始下载] G --> H{下载完成} H -->|是| I[MP 目录监控触发] I --> J[硬链接 / 整理媒体目录] J --> K[Emby 媒体库监控] K --> L[Emby 自动刮削元数据] L --> M[订阅完成]

项目部署

本教程使用的方法是Compose文件部署。Compose文件部署可以生成一个项目,方便日后管理,且方便日后重建。

创建配置文件目录

打开文件管理,打开想要存放配置文件的路径,创建一个存放项目配置的文件夹。

我这里是 我的文件——Docker——MoviePilotProject,我打算将项目的所有配置文件放入这个文件夹中。

此处注意一件事,配置文件的存放目录,尽量选择固态硬盘。一方面配置文件不大,另一方面某些容器会频繁调用配置文件内部的信息,使用固态的话,体验会好很多。

建立.env文件

因为Compose文件内涉及到的东西有点多,怕大伙改错,所以将一些重要的自定义参数写在一个.env文件中,配合事先编写好的Compose文件,就可以完成个性化的项目部署。

首先需要在电脑的桌面上新建一个文本文档文件(txt)。

使用记事本,打开这个文本文档文件,在其中填入以下预设参数。

# ===== 基础通用 =====
TZ=Asia/Shanghai
PUID=0
PGID=0
UMASK=000
GIDLIST=100,101

# ===== 端口 =====
MOVIEPILOT_NGINX_PORT=3000  #MP的http端口
MOVIEPILOT_APP_PORT=3001    #MP的应用端口
EMBY_HTTP_PORT=8096         #Emby的http端口
EMBY_HTTPS_PORT=8920        #Emby的https端口    
TMDB_PROXY_PORT=54321       #TMDB API的端口
QBIT_WEBUI_PORT=8080        #qBittorrent的webui端口

# ===== 路径(按你现有的实际路径)=====
MEDIA_ROOT=/vol1/1000/影视库
MEDIA_SORTED=/vol1/1000/影视库/已整理
MEDIA_UNSORTED=/vol1/1000/影视库/未整理

# ===== 路径(以下为配置路径 如果你不清楚是什么就不要修改)=====
MOVIEPILOT_CONFIG=./MoviePilot/config
MOVIEPILOT_PLAYWRIGHT=./MoviePilot/core
EMBY_CONFIG=./Emby/config
REDIS_DATA=./Redis/data
POSTGRES_DATA=./Postgresql
TMDB_CACHE=./TMDB/cache
QBIT_CONFIG=./Qbittorrent/config
QBIT_WATCH=./Qbittorrent/watch

# ===== MoviePilot 超管(敏感)=====
MP_SUPERUSER=admin  #请改成你的用户名
MP_SUPERUSER_PASSWORD=请改成强密码

# ===== PostgreSQL(敏感)=====
PG_DB=moviepilot
PG_USER=moviepilot
PG_PASSWORD=请改成强密码

# ===== Redis(敏感)=====
REDIS_PASSWORD=请改成强密码

# ===== TMDB Proxy(敏感)=====
TMDB_API_KEY=请替换为你的TMDB_KEY
TMDB_ADMIN_API_KEY=请改成强密码
TMDB_CACHE_MAX_GB=10
TMDB_CACHE_TRIGGER_GB=0.85
TMDB_REQUEST_LOG_CAP=500

先保存一版,接下来我来解释这些参数的详细意思,以及需要修改什么内容以满足你的需求。

基础通用

这部分是容器的时区和权限之类的参数,这部分就不需要修改了。

端口

这部分是各个容器的暴露端口,也是后续需要访问的端口,可以进行自定义化的修改,但是一定要记得自己改了什么。

如果你是新手小白,那么建议在没有冲突的情况下别做修改。

常见的冲突有事先下了飞牛内部的下载器(Qbittorrent)导致8080端口冲突,以及事先下了飞牛内部的Emby应用导致8096和8920冲突。如果产生了这样的冲突,可以在卸载应用和修改端口之间取舍,但是一定要记得自己对应的端口

后续教程也会依据这个端口来,如果修改了端口,就对应修改就行。

媒体库路径

这部分就比较重要了,都是必须要修改的。此处关系到MP的整理硬链接。

MEDIA_ROOT=/vol1/1000/影视库
MEDIA_SORTED=/vol1/1000/影视库/已整理
MEDIA_UNSORTED=/vol1/1000/影视库/未整理

可以看到我把影视库放在了/vol1中,也就是存储空间1,如果你想把影视库放在存储空间2中就修改为/vol2,由次类推。

其中的未整理,下载器下载的文件都会进入这个目录。

其中的已整理,是MP将未整理中下载的影片进行改名后,放到已整理目录中。后续由Emby进行刮削。

配置路径

这部分是所有容器的配置的指定存放路径,且统一采用了相对路径的写法,他们会生成在docker-compose.yml同级的目录下,如果你不知道这些文件的具体作用,就不要进行修改

MP超管

这两行是MP超级管理员的账号和密码,需要自己修改。

其中用户名不要出现特殊字符,如果不嫌弃的话可以直接使用Admin。

PostgreSQL和Redis

这两个部分也需要强密码,你也需要自己修改,不过这两个密码只是告知容器,本次教程用不会用到。

其实MP官方教程中,这两个是预设的,但是考虑到有泄露风险就还是进行自定义吧。

TMDB Proxy

这部分需要改两个,TMDB_API_KEYTMDB_ADMIN_API_KEY,其中TMDB_ADMIN_API_KEY需要自己改成强密码,这个密码后续需要使用,所以要记住。

接下来说一下TMDB的API KEY如何获取。

  1. 打开TMDB官方注册网页https://www.themoviedb.org/signup

  2. 填写你的用户名、密码、电子邮件注册。

  3. 可能会有一封激活信送到邮箱,记得点击链接激活。

  4. 打开API页面https://www.themoviedb.org/settings/api

  5. 点击请求API密钥栏下的Click here

  6. 选择Developer

  7. 然后表单就按照实际填就行,其中应用简介尽量用英文填,你可以找一个AI帮你写。这部分如果不会,建议去找一下别的教程,此处就不再赘述了。

  8. 点击提交

  9. 回到https://www.themoviedb.org/settings/api

  10. 这一串短的API密钥就是我们需要的TMDB_API_KEY了,将其替换在我们的.env文件中。

至此我们就完成了我们独一无二的.env参数文件填写了。

上传.env文件

将我们写好保存的文本文档直接上传到MoivePilotProject文件夹下,右键点击重命名。将其命名为.env

完成后应该是这个样子,注意.env文件就叫.env,没有名字只有拓展名,不要忘了点(.)。

至此我们的参数文件就结束了,注意保存好这一份参数文件,后面如果有问题尽量只修改这一份文件,尽量不要去修改Compose文件

Docker Compose部署

打开Docker应用,左侧工具栏点击Compose,点击新增项目

填入项目名称。注意项目名称符合规范。你也可以直接学我使用moviepilot-project作为项目名称。

路径选择我们上面创建的MoviePilotProject文件夹。

来源选择创建docker-compose.yml

勾选创建项目后立即启动

在docker-compose输入框中,填入以下配置文件。

version: "3.8"

networks:
  app-net:
    name: media-app-net
    driver: bridge

services:
  moviepilot:
    image: jxxghp/moviepilot-v2:latest
    container_name: moviepilot-v2
    hostname: moviepilot-v2
    stdin_open: true
    tty: true
    restart: always
    networks:
      - app-net
    ports:
      - "${MOVIEPILOT_NGINX_PORT}:3000"
      - "${MOVIEPILOT_APP_PORT}:3001"
    volumes:
      - "${MEDIA_ROOT}:/media"
      - "${MOVIEPILOT_CONFIG}:/config"
      - "${MOVIEPILOT_PLAYWRIGHT}:/moviepilot/.cache/ms-playwright"
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      NGINX_PORT: "${MOVIEPILOT_NGINX_PORT}"
      PORT: "${MOVIEPILOT_APP_PORT}"
      PUID: "${PUID}"
      PGID: "${PGID}"
      UMASK: "${UMASK}"
      TZ: "${TZ}"

      SUPERUSER: "${MP_SUPERUSER}"
      SUPERUSER_PASSWORD: "${MP_SUPERUSER_PASSWORD}"

      DB_TYPE: postgresql
      DB_POSTGRESQL_HOST: postgresql
      DB_POSTGRESQL_PORT: 5432
      DB_POSTGRESQL_DATABASE: "${PG_DB}"
      DB_POSTGRESQL_USERNAME: "${PG_USER}"
      DB_POSTGRESQL_PASSWORD: "${PG_PASSWORD}"

      CACHE_BACKEND_TYPE: redis
      CACHE_BACKEND_URL: "redis://:${REDIS_PASSWORD}@redis:6379"
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy

  emby:
    image: amilys/embyserver:latest
    container_name: emby-amilys
    restart: unless-stopped
    privileged: true
    networks:
      - app-net
    ports:
      - "${EMBY_HTTP_PORT}:8096"
      - "${EMBY_HTTPS_PORT}:8920"
    volumes:
      - "${EMBY_CONFIG}:/config"
      - "${MEDIA_SORTED}:/media/video"
    environment:
      UID: "${PUID}"
      GID: "${PGID}"
      GIDLIST: "${GIDLIST}"
      TZ: "${TZ}"
    devices:
      - /dev/dri:/dev/dri

  redis:
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    networks:
      - app-net
    volumes:
      - "${REDIS_DATA}:/data"
    command: ["redis-server", "--save", "600", "1", "--requirepass", "${REDIS_PASSWORD}"]
    healthcheck:
      test: ["CMD-SHELL", "redis-cli -a ${REDIS_PASSWORD} ping | grep -q PONG"]
      interval: 10s
      timeout: 5s
      retries: 5

  postgresql:
    image: postgres:latest
    container_name: postgresql
    restart: always
    networks:
      - app-net
    environment:
      POSTGRES_DB: "${PG_DB}"
      POSTGRES_USER: "${PG_USER}"
      POSTGRES_PASSWORD: "${PG_PASSWORD}"
    volumes:
      - "${POSTGRES_DATA}:/var/lib/postgresql"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${PG_USER} -d ${PG_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5

  pgloader:
    image: dimitri/pgloader:latest
    container_name: pgloader
    networks:
      - app-net
    volumes:
      - "${MOVIEPILOT_CONFIG}:/mp_config"
    command: >
      pgloader
      sqlite:///mp_config/user.db
      postgresql://${PG_USER}:${PG_PASSWORD}@postgresql:5432/${PG_DB}
    depends_on:
      postgresql:
        condition: service_healthy
    restart: "no"

  tmdb-proxy:
    image: ck939410/test-tmdb:0.1
    container_name: tmdb-proxy
    user: "0:0"
    restart: always
    networks:
      - app-net
    ports:
      - "${TMDB_PROXY_PORT}:54321"
    environment:
      NODE_ENV: production
      PORT: 54321
      TMDB_API_KEY: "${TMDB_API_KEY}"
      ADMIN_API_KEY: "${TMDB_ADMIN_API_KEY}"
      IMAGE_DISK_CACHE_ENABLED: "true"
      IMAGE_DISK_CACHE_DIR: /tmp/tmdb-cache
      IMAGE_DISK_CACHE_MAX_GB: "${TMDB_CACHE_MAX_GB}"
      IMAGE_DISK_CACHE_TRIGGER_GB: "${TMDB_CACHE_TRIGGER_GB}"
      REQUEST_LOG_CAP: "${TMDB_REQUEST_LOG_CAP}"
    volumes:
      - "${TMDB_CACHE}:/tmp/tmdb-cache"

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent-movie
    restart: unless-stopped
    network_mode: host
    privileged: true
    environment:
      PUID: "${PUID}"
      PGID: "${PGID}"
      TZ: "${TZ}"
      WEBUI_PORT: "${QBIT_WEBUI_PORT}"
    volumes:
      - "${QBIT_CONFIG}:/config"
      - "${MEDIA_UNSORTED}:/downloads"
      - "${QBIT_WATCH}:/watch"

点击确定开始立即构建。
这过程时长视NAS配置网络情况而定,长的话可能要20分钟。因此需要一个良好的网络环境

完成后应该只有一个容器pgloader是灰色的,其余都是绿色的。前面也说到这个容器就是用来转移数据库内容的,只在第一次部署时启动一次。部署完成后可以自查一下是不是都正常启动,如果没有的话,清理容器和数据,建议从头再来一遍。

容器配置

所有容器正常后,接下来就是各个容器的具体配置,进入到这一步,就说明你离成功不远了。

下载器配置

配置下载器外网访问

为什么先是这一步呢,这是为了方便那些远程部署的小伙伴。在Qb下载器没有设置前,进行反向代理访问的话,就会提示Unauthorized。

首先停止Qb下载器容器。

使用文件管理,进入路径/Docker/MoviePilotProject/Qbittorrent/config/qBittorrent,找到qBittorrent.conf

打开并编辑qBittorrent.conf文件,这里需要另外一个应用,文本编辑器。可以去飞牛的应用中心进行下载安装。如果可以的话,还可以下载安装一下代码编辑器。这样以后可以直接修改docker的Compose文件和.env文件了。

打开qBittorrent.conf文件后,把这两行配置添加到文件的最末尾。记得点击保存。

WebUI\HostHeaderValidation=false 
WebUI\CSRFProtection=false

然后回docker启动Qb下载器,这样就能解决反代显示Unauthorized的问题了。

登陆下载器并修改密码

Qb下载器的初始账号密码需要进入容器的日志查看。点击运行日志图标。

然后从日志最后可以看到生成的账号和随机密码。顺带一提,这个界面是无法使用快捷键进行复制的,所以还是使用选中+右键复制的古老方法吧。

我们通过http://飞牛NAS地址:8080。即可访问Qb下载器。在此填入我们刚刚获取到的账号密码,即可完成登陆。

进入界面后会发现下载的语言是英语的,所以我们先把下载器的语言改为中文,方便我们操作。

点击状态栏上的小齿轮

点击User interface language中的English。下拉栏最后面找到简体中文。然后点击Save。完成保存操作。随后页面会自动刷新,界面语言也就变成了中文。

接下来我们需要修改用户名和密码。还是点击刚刚的小齿轮。切换到WebUI界面。在验证栏里面找到用户名和密码,进行修改。注意这里是没有重复密码的选项的,所以一定要小心输入密码,如果输错了导致后面进不去下载器,就得删除容器重新构建了。完成填写后往下拉点击保存

配置下载器具体参数

以下所有操作都是在设置(小齿轮)中完成的,后续就不再赘述。

下载页面,勾选合并tracker到现有torrent为不完整的文件添加拓展名!qb两项。

这两项一方面是为了在mp调用相同种子但不同站点下载时,能够合并其tracker,另一方面添加额外拓展名保证MP只在任务完成后才触发其整理功能,以免发生意料之外的错误。

连接页面,随机一个用于传入连接的端口(当然你也可以手动传入),勾选使用我的路由器的UPnP/NAT-PMP端口转发,将连接限制取消所有的勾选

在PT中6881这个端口大多都会被ban,导致下载器没有速度,因此需要选择一个随机的大于1024的高端口。

勾选端口转发可以触发部分路由的UPnP功能,即下载器会有更好的连接性,帮助你连接到更多的用户。至于如何启用,各个路由器都不一样,需要你自己去找方法了,笔者使用的是软路由,这里也是推荐使用软路由作为主路由。另外更好的连接性是基于本身网络环境是NAT1或者NAT2,如果本身是NAT3以上,这个开了也不会有太大的提升。

解除所有的连接限制是因为有些热门资源往往具有很大的连接数和上传量,取消限制可以最大限度提升传输速度。

速度界面,可以限制其下载和上传的速度,这部分就依据你自己的实际进行限制,部分对上传速度敏感的地区尽量压低一点上传速度,但是不要小于2M/s过慢的上传速度对PT生态也是一种伤害,毕竟谁也不想在面对孤种的时候只有百度云100kb/s的速度。

另外取消勾选对µTP 协议进行速度限制,这对抢上传有点帮助,但不多。如果取消勾选这一项后感觉家里网速变卡了,那就建议开启。

BitTorrent界面,取消勾选隐私中的三项及Torrent排队

这三项在BT还有用,就是用来找人,但是在PT中Tracker服务器已经记录了所有有种子的用户,就没必要开启,有些PT站也会声明禁止开启DHT,防止因流量对不上被当作作弊封号。

取消Torrent排队能够让所有种子都进行下载上传活动,如果勾选你就能看到好多种子都在排队。

至此下载器所有的配置都已经完成了,下拉点击保存即可。

TMDB本地缓存验证

进入http://飞牛NAS地址:54321/admin/dashboard,输入上面.env文件中输入的密码,能够成功登陆。

在浏览器中输入http://飞牛NAS地址:54321/t/p/w500/vxleCpULOzkJgszhQWnffPXXXu2.jpg,能够出现图片且在最近访问日志能够出现对应日志,且图片请求和命中情况能够记录,说明部署成功。

Emby配置

第一次配置

浏览器进入http://飞牛NAS地址:8096,进入Emby后台。这里有些小伙伴可能会出现一直无法进入的情况,这可能是因为之前你部署过相同端口的Emby,以至于浏览器还有缓存残留,遇到这种情况,只需要重新开一个无痕页面进入后台配置即可,第一次配置完后在正常模式下也可正常使用。

设置界面显示语言为Chinese Simplified。点击下一步,注意这里不会自动切换成中文,我们需要将等第一次配置流程结束后才会变成中文。

设置用户名、密码、重复密码。下一步。

设置媒体库,这里我们先下一步,后面再回来设置。这里用英语设置也不是很舒服。

这里是要不要自动使用UPnP映射端口到路由器,建议关闭,后期可以自己使用Lucky等反向代理去统一维护这个功能,不要让Emby自己去暴露端口。

这里同意下一步。不同意也没法下一步。

这里点击完成。我们就完成了第一次配置。

之后使用刚刚设置的账户登陆Emby,点击右上角的小齿轮进入后台设置界面。后续的操作都是在后台设置页面完成,不再赘述。

更改Emby显示名称

刚刚生成的Emby服务器的名字是随机的,为了具有标识性,首先需要给它改一个名字。点击服务器随即名字右边的三个点,点击更改服务器显示的名称

修改其服务器爱称,点击保存

媒体库配置

修改媒体库首选元数据语言默认设置

打开媒体库——高级,将首选元数据语言中语言修改为Chinese Simplified。点击保存

关于认证国家或地区,也可以修改为中国,但是考虑到中国分级制度不是很行,建议还是使用美国。

手动新建媒体库分类

回到飞牛,打开文件管理——影视库——已整理,创建一个文件树。注意文件名不要修改,注意不要写错

已整理/
├─ 电视剧/
│  ├─ 儿童/
│  ├─ 国产剧/
│  ├─ 国漫/
│  ├─ 纪录片/
│  ├─ 欧美剧/
│  ├─ 日番/
│  ├─ 日韩剧/
│  ├─ 未分类/
│  └─ 综艺/
│
└─ 电影/
   ├─ 动画电影/
   ├─ 华语电影/
   └─ 外语电影/

其实这一部分MP在整理后也会自动创建,但是这样就需要先下载对应的影片,这里我们加加速,先把文件夹建立好,方便我们后续新增媒体库。

顺带一提,其实未分类可以不创建,因为一般正常订阅流程下,无法识别的内容是无法订阅的,但是来都来了。

新增媒体库

回到Emby,打开媒体库——媒体库——新增媒体库。

这里我演示两个部分,一个是电影,一个是电视剧,可以自己慢慢配置。

电影媒体库配置
电视剧

完成后的媒体库应该是这样的。

除了动漫是3个文件夹的合集,其他的都是按照原来的名字命名的,你可以有自己的想法,但是后面我会更新一个MP常用插件中的一个Emby封面插件的使用方法,其中会涉及到媒体库的名称。是否按照这种方式命名由你决定。

转码设置

这方面比较简单,打开转码——转码,将启用硬件加速改为高级。点击保存。

色调映射这一块,我的建议是不开,尽量不要给服务端增加负担,如果出现色调不准,更推荐换一个终端,而不是给服务端施压。但是如果你终端受限,那也可以尝试开一下,但是这对CPU的负担很大,色调映射也不一定正确。

另外顺带一提,后面的首选编码器需要和你NAS的GPU能够硬解的编码相对应,如果你不知道哪里去查,有一个比较简单的方法,新CPU(N100、N150之类的)全勾,相对较旧但不过时(8100、9100之类的)不勾AV1,超丐(E3、E5之类的)还是别开硬件解码了。

安装神医助手

可能敏锐的小伙伴已经注意到,教程中选择的Emby版本是4.9.1.90,而不是4.8.11.0,这样就导致无法使用神医助手。

有一位作者fork了神医的项目,是一个基于社区AI修复正常的4.9.190稳定版,地址在这里https://github.com/OneManJS/StrmAssistant/actions/runs/19899384971

拉到最下面点击下载即可下载合适的神医助手版本。

顺带一提,如果你没有Github账号,强烈建议注册一个,哪怕不写代码,上去看看好的项目也是好的,而且MP中遇到插件下载限制,也需要通过填写GitHub API来解决。

考虑到有些小伙伴对GitHub注册还是有点苦手,这里在夸克网盘上上传了一个文件,但是随着版本更新不保证能够使用。

https://pan.quark.cn/s/5359cbc1c28e

这是一个文件夹,记得解压后使用。

回到飞牛NAS,打开文件管理,进入/Docker/MoviePilotProject/Emby/config/plugins,将StrmAssistant.dll拖入其中。

在Docker页面,重启Emby。

再回到Emby时,就可以看到神医助手已经安装完成,且没有报错。

进入神医助手——元数据增强。开启使用代替TMDB配置,填入参数。保存

这里的IP地址可以在docker容器的网络里面看到,如果你找不到在哪里,也可以使用飞牛的IP地址。密钥这里还是填了真实的密钥。

这里提一下另外一件事。

为了后续的配置顺畅,强烈建议去看一下我上一篇的Lucky反向代理教程(https://kurumi.ink/?p=WQ7IweUT),然后将TMDB缓存反向代理。

虽然MP有很多方法能够保证TMDB的访问,但是MP使用了这个代理之后,能够解决TMDB连接质量不好的问题。

下面是Lucky的TMDB缓存的配置。和Emby的API地址设置。

到此Emby部分也已经配置完成了,之后会再回来生成一个API密钥,到后面再讲。

MP配置

进入http://飞牛NAS地址:3000,输入之前填的账号密码,如果实在忘记了,可以去.env文件里面查看。登陆。

用户认证

点击右上角头像——用户认证。选择自己有的认证站点,填入用户名和密钥进行认证。如果你是IYUU就需要填入用户令牌。认证完成后会自动重新登陆。

这里说一下认证站点没有怎么办,答案是没招,等有了对应认证站点再来吧,或者你可以使用IYUU的用户令牌进行认证,关于IYUU的教程,后续我有时间了再写。顺带一提,如果你之前完全按照我写的进行配置,那后面的IYUU辅种转种教程会比较顺畅一些。

配置高级设置

进入设定——系统——高级设置。

系统

全局图片缓存:这里涉及到之前你有没有将TMDB缓存使用Lucky反代的情况,如果你有,那就关闭,如果没有那就开启。这个开启后会将所有媒体文件缓存在本地,这样的话近似替代了TMDB缓存的功能,但是有一个弊端就是如果TMDB连接不稳定导致检索或者请求失败,那在刷新网页的情况下就会一直持续这个错误。

大内存模式:如果你的NAS小于4G就不要开启了,大于4G可尝试开启。

媒体

如果你反代了TMDB的缓存,那就将其地址填入。注意是填写高端口的那个地址,以及去掉https://。

网络

这部分如果你有代理服务器,例如部署在本地的openclash,就可以填写。或者有Github加速代理也可以填写。

如果之前你反代了TMDB的缓存,那就在安全图片域名中添加反代地址。注意是填写443端口的那个域名。

后面日志和实验室就不做修改了,点击保存即可。

此时反代了TMDB缓存的小伙伴注意了,打开一下左侧栏的探索,应该会有图片刷新出来。在TMDB代理监控面板也可以看到相应的日志,如果没有就是没有配置成功。

配置系统设置

进入设定——系统。

下载器配置

在下载器栏,点击加号添加一个Qb下载器,点击下载器卡片进行配置。

打开启用默认自动分类管理优先下载首尾文件

  • 名称:自己想一个

  • 地址:http://飞牛NAS地址:8080

  • 用户名:Qb下载器的用户名

  • 密码:Qb下载器的密码

  • 路径映射:从本地的/media/未整理到下载路径的/downloads

路径映射是最近版本出的新功能,完美解决了之前路径填写不够优雅的问题,本来想解释原理,后来想想对小白来说,说了反而容易起疑惑,因此如果之前你完全按照我的目录来,这里只需要照抄就行

点击保存。完成下载器配置。记得外面的也要点击保存。不然白做。

媒体服务器配置

在媒体服务器栏,点击加号添加一个Emby服务器。点击服务器卡片进行配置。

启用媒体服务器。

  • 名称:自己想一个

  • 地址:http://飞牛NAS地址:8096

  • 用户名:Emby的用户名

这里需要一个API密钥,我们回到Emby设置——API密钥,点击新建API密钥,输入应用名称,点击提交。即可获得一枚密钥。

然后将这段密钥复制到MP的设置里即可。

老样子记得点击外面的保存按钮。

配置存储&目录设置

进入设定——存储&目录。

目录

在目录栏,点击加号添加一个目录别名。点击目录别名卡片进行配置。

如果你之前一直跟着我的目录来,那就直接照抄吧。

记得点击保存。

稍微解释一下。

此处我们只分了两个整理任务,一个专门整理电影一个专门整理电视剧。(其实不分也行,但是我怕版本更替后出事,还是不厌其烦设置了一下。也算是打个样。)

两个按照类别分类开启后,那么未整理和已整理都会变成我们之前建立的那个分类目录一样,这方面其实是有一定争议的,但是我觉得分类了之后方便后续手动整理,而且其实并不影响辅种转种。

整理触发是目录监控和兼容模式,虽然速度不如其它的快,但是胜在稳定。

整理方式是硬连接,既能保证做种,也能保证刮削。

覆盖模式仅最新,这样的话即使重复了,在媒体整理记录中也能快速分辨在媒体库中的是哪个版本。

刮削元数据就不要开启,因为我们的教程是让Emby自己去刮削。

添加站点

站点添加一般是通过cookie进行添加。但是也有一些特例,这里稍微讲一下。而且站点添加只需要填写站点地址和cookie(部分需要填写令牌、密钥)。

获取cookie

  1. 打开并登陆对应站点。在浏览器中按下F12打开开发者工具。

  2. 在开发者工具界面切换到Network(网络)。

  1. 刷新页面。

  2. 在Name(名称)栏内,找到第一个项目,点击后在Headers(请求头)内,找到Cookie,选中后复制到MP中。

存取令牌(MT)

某头站点比较特殊,需要存取令牌。

打开并登陆某头站点。进入控制台——实验室,点击建立存取令牌。复制一个令牌密钥填入MP即可。

加密密钥(DB)

某比站点也比较特殊,需要加密密钥。

打开并登陆某比站点。点击右上角时间下方的获取RSS图标。

直接点击生成连接。

可以看到本次加密密钥,且密钥具有有效期。复制到MP即可。

启用站点

进入设定——搜索&下载以及订阅中。

将需要开启的站点进行选中,然后点击保存。

进阶配置

先鸽着。

媒体库封面生成

订阅规则自动填充

站点刷流

尾言

至此整套配置就已经全部完成了,剩下的就自己摸索吧,如果有不懂的可以下面评论。但我不一定会回。