一、名词解释

在正式开始前,先对部分名词进行解释,以方便后续使用。

名词解释
  • BT (BitTorrent):点对点(P2P)的文件共享协议,具有去中心化的特点。

  • Tracker:BitTorrent 网络中的服务器,负责协调客户端之间的连接,帮助用户找到彼此。

  • PT (Private Tracker):BitTorrent的一种变体,只允许本站用户下载,持续进行流量统计追踪。

  • 上传量:向其他用户上传的数据总量,有些种子会带有 2x上传标志,此时上传量两倍计算。

  • 下载量:从 PT 站所下载文件的数量,由于 PT 站会对种子存在促销(比如新发布的种子 24 小时内不计算流量,或者 50% 只计算一半流量),故实际为下载的资源大小 * 种子促销。

  • 分享率:上传量/下载量。分单种分享率和总分享率,通常需要保证总分享率 > 1。

  • 盒子 (SeedBox):一种专门用于刷流的服务器,具备高上传高下载的特点。

  • 刷流:为提升账户分享率而去刷上传量的行为,需要注意的是:某些站点可能对上传量做要求,如不能大于 100Mib/s。或者使用盒子刷流时不享受站免规则。

  • H&R:表示下载完资源后在规定时间内没有完成最少做种时间的行为,简单说就是“下完就跑” 。带有此标记的种子要求当下载率达到 X %时至少在 X 天保种 Z 小时或分享率大于 1。

  • 魔力:由做种行为经过一系列公式(发布时间、做种人数、种子体积)得出的数字,可视作保种奖励。一般可用于兑换上传量、购买勋章、发送邀请、消除 H&R 记录,可赠送交易。

  • 做种积分:简单理解为不包含加成的魔力值,一些站点将其用于升级的硬性标志,不可交易。

  • 用户等级:根据下载量、上传量、注册时间、分享率、积分决定用户的账号等级。

  • 邀请:由于 PT 站是游走在法律边缘的灰色产物,绝大部分站点采用邀请注册制,高级账户可发出邀请。

  • 新手考核:新注册用户的考核任务,一般要求在一定日期(如 30 天)内下载量、上传量、分享率、做种时间/积分达到一定要求。也存在某些站点没有新手考核任务,但要求注册几天内需要有流量产生。

  • 非活跃用户:没有流量的用户(即上传/下载数据都为0)连续X天不登录将被删除帐号;未封存账号的用户连续Y天不登录将被删除帐号;封存账号的用户连续Z天不登录将被删除帐号。常见值为 7,90,180。

  • 2xFree:含有该标记的种子上传量按2倍记录,不计下载量。

  • 50%:含有该标记的种子上传量按1倍记录,下载量按50%记录。

  • Free:含有该标记的种子上传量按1倍记录,不计下载量。

  • 9KG:9KG = 18斤 = 18 🈲。

二、MoviePilot

MoviePilot(以下简称为 MP) 是一个媒体库自动化管理工具,核心功能如下:

  • 自动订阅下载:根据订阅内容定期扫描 PT 站获取匹配资源并推送下载链接到下载器。

  • 自动刮削入库:下载完毕种子后按照一定规则整理刮削媒体资源并将该资源入(媒体)库。

具体到我的设备,便是 MP、QBittorrent 和极影视之间的互相搭配。极影视的刮削功能表现优秀,但偶尔会出现刮削错误,需要手动修正。然而,极影视的刮削数据是独立存储的,这意味着如果媒体路径发生变动,重新刮削时无法复用之前修正过的数据,这会导致错误再现。相较之下,MP 的刮削功能会彻底重定义媒体文件结构和命名方式,并将 NFO 文件写入到同目录中。极影视虽然不会直接采用这些 NFO 数据,但会读取其中的 tmdbid 值,根据该值获取最新的数据(省去识别过程)。因此,MP 搭配极影视是个美妙的体验。


本节只注重 MP 软件内的配置流程,MP 的部署、初始化等内容不再此列。

基础配置

  • 用户认证

  • 下载器配置

    • 常用下载器为 QBittorrent(以下简称为 QB)。
    • 如果借鉴了PT 一体化工具,URL 可以填写:http://qbittorrent:8080
    • 其余选项按个人喜好自定。
  • 目录约定

    • 假设 MP 媒体文件的挂载路径如下:

      媒体库目录映射到 MP 容器的 media 目录
      - "/媒体存储:/media"
    • 媒体库目录中的结构应该是:

      • /媒体存储/影音下载 => 此目录亦需映射给 QB 下载器用于存储下载文件。
      • /媒体存储/影音整理 => 此目录存储 MP 刮削整理后的文件,你的媒体库应扫描该目录。

存储目录

玩 PT 的用户都明白,为了保种,通常情况下下载后的文件结构不能随意更改。不过,MP 提供了强大的整理功能,支持复制、移动、软链接和硬链接操作。默认情况下,对于一份影音资源,其匹配规则为:

MP 默认整理文件结构
前后顺序代表匹配顺序
.
├── 电影
│ ├── 动画电影
│ ├── 华语电影
│ └── 外语电影
├── 电视剧
│ ├── 国漫
│ ├── 日番
│ ├── 纪录片
│ ├── 儿童
│ ├── 综艺
│ ├── 国产剧
│ ├── 欧美剧
│ └── 日韩剧
└── 未分类

电视剧规则对我来说有些复杂,同时我比较习惯将动漫、纪录片、综艺提到和电视剧相同层级。在 MP 插件模块中,下载插件【二级分类策略】,填入如下内容:

二级分类策略
movie:
动画电影:
genre_ids: '16'
华语电影:
original_language: 'zh,cn,bo,za'
外语电影:
tv:
动漫:
genre_ids: '16'
纪实:
genre_ids: '99'
综艺:
genre_ids: '10764,10767'
国产剧:
origin_country: 'CN,TW,HK'
欧美剧:
origin_country: 'US,FR,GB,DE,ES,IT,NL,PT,RU,UK'
日韩剧:
origin_country: 'JP,KP,KR,TH,IN,SG'
小众剧:

另一方面,MP 的整理方式[1]主要分为下载器监控目录监控。其中,下载器监控主要针对任务标签为 MOVIEPILOT 的下载任务。鉴于可能通过外部方式向 QB 添加下载任务,所以此处采用目录监控[2]。具体到目录约定,主要监控/媒体存储/影音下载/整理目录。

综上所述,我们的完整目录结构如下:/影音资源 是 QB 的下载目录,其中/影音资源/整理是用于 MP 整理监测的资源目录;/影音整理则是 MP 整理刮削后通过硬链接存储的媒体库目录,其文件结构由上述二级分类策略所定义。详细文件目录结构如下:

MP 容器视角下的文件目录结构
/media
├── 影音整理
│ ├── 剧集
│ │ ├── 国产剧
│ │ ├── 欧美剧
│ │ ├── 日韩剧
│ │ └── 小众剧
│ ├── 电影
│ │ ├── 动画电影
│ │ ├── 华语电影
│ │ └── 外语电影
│ ├── 动漫
│ ├── 纪实
│ └── 综艺
└── 影音资源
├── 整理
└── 未完

最后,我们在 MP 的设定 - 存储 & 目录 - 目录中,根据上述约定规则,添加具体的媒体文件的整理规则。由于其按照先后顺序匹配,所以我们的定义顺序应为:综艺、动漫、纪实、剧集、电影[3]

MP 整理规则

Note1:资源存储本地,自动整理目录监控,监控模式性能模式,媒体库存储本地,整理方式硬链接/覆盖模式

Note2:剧集电影分类,不勾选第一个按类别分类:影响下载文件的目录存储结构,没有分类必要。

Note3:最下方的智能重命名刮削元数据发送通知按类别分类全部勾选。

Note4:资源目录没必要分类,统一下载到单个文件夹即可,媒体库目录按照类型整理。

别名媒体类型媒体类别资源目录媒体库目录
综艺电视剧综艺/media/影音资源/整理//media/影音整理/综艺/
纪实电视剧纪实/media/影音资源/整理//media/影音整理/纪实/
动漫电视剧动漫/media/影音资源/整理//media/影音整理/动漫/
剧集电视剧全部/media/影音资源/整理//media/影音整理/剧集/
电影电影全部/media/影音资源/整理//media/影音整理/电影/
MP 整理规则 截图

整理结构

极影视 媒体库

极空间

影视订阅

在站点管理页面完成 PT 站点的登录后,前往“设定”-“搜索&下载”-“搜索站点”,然后启用需要用于搜索的站点。顾名思义,只有选中的站点才会在搜索中使用。接下来,可以通过“推荐”、“探索”、“搜索”以及“订阅”中的热门订阅等入口获取媒体资源。根据个人喜好添加电影或电视剧的订阅后,另外可以在订阅分类的日历页面中,以剧集发布日期为排序查看订阅日历。当 MP 匹配到订阅的媒体资源后,会获取下载链接并推送至下载器 QB。下载完成后,MP 将根据存储目录中预设的规则对媒体文件进行整理和刮削。

更多订阅规则的使用修订可参考官方文档:

MP 推荐、探索、订阅

推荐

探索

订阅信息

MP 整理记录

整理记录

消息通知

通知渠道:(企业)微信

首先,需要准备一个企业微信账户,并在企业微信后台的“应用管理”-“自建”中创建一个新的应用。如果仅需通知功能且无需交互功能,只需在 MP 中填写以下信息:企业 ID、应用 AgentId,以及应用 Secret。

  • 关于代理地址:自2022年6月起,新建的企业微信应用需要拥有固定的公网 IP 代理才能接收到消息。参考教程:使用腾讯云cdn实现企业微信反向代理
  • 关于交互能力:您可以在微信企业应用的接收消息设置页面生成[4]TokenEncodingAESKey,然后将它们填入“设定”-“通知”-“微信”中的对应项,并保存
  • 关于管理员白名单:微信用户可在企业微信应用中发送消息,随后在 MP 的日志中查看以下内容:收到来自 微信 的微信消息:userid=xxxx, text=所发送的内容文本,通过该字段获取对应的 userid 值。
  • 如何在微信中接收企业微信消息:进入企业微信后台管理的“我的企业”-“微信插件”,点击“邀请关注”,并使用微信扫描生成的二维码以完成关注。接着,前往企业微信客户端的“我”-“设置”-“消息通知”页面,关闭“仅在企业微信中接收消息”的所有选项即可。
微信通知

三、Transmission

一个 Transmission 浏览器管理界面:

下载项目,拷贝 src 目录中的文件到 Transmission 镜像的 /config/web-control 目录。

为 Transmission 容器添加环境变量指定 WebUI
- "TRANSMISSION_WEB_HOME=/config/web-control/"

四、参考文档


  1. 下载器监控自动整理间隔为5分钟;目录监控为实时,请避免对网盘目录使用目录监控。
    在 QB 中可在通过配置『保存未完成的 torrent 到』项暂存到识别目录之外,避免被实时刮削。
    在此处的目录约定中,我们可使用/媒体存储/影音下载/未完暂存未全部完成下载的种子文件。 ↩︎

  2. 采用下载器监控,手动为外部添加的下载任务补上 MOVIEPILOT 标签即可。

    替换 moviepilot 为 API 令牌
    curl "http://moviepilot:3000/api/v1/transfer/now?token=moviepilot"

    可在 QB设置->下载完成时运行外部程序 处填入上述内容,实现无需等待轮循,下载完成后立即整理入库。 ↩︎

  3. 由于将综艺、动漫、纪实(纪录片)从剧集(电视剧)分类中提出,所以必须先匹配这三者才能避免被剧集规则所匹配,如此才能修改存储目录层级。 ↩︎

  4. 如果在创建 API 时报 openapi 回调地址请求不通过,在 MP 中开关保存一次微信通知项目,再次尝试即可。 ↩︎

评论