释放小七猫的分享欲

qBittorrent+MP+Emby:NAS 观影系统搭建全攻略

categories: 技术 tags: NAS
@ 24/11/2025

qBittorrent+MP+Emby:NAS 观影系统搭建全攻略

最近被封禁了一个 PT 号,给我造成了极大的麻烦。主要原因是没有做好 PT 站点、网盘下载文件的组织,导致清理视频文件的时候,所有下载的视频都杂糅在一起,看着就头皮发麻。

最后选择了把整理的文件全部删除,重新构建了一套文件组织方式。

这篇文章将会从下载、整理刮削、流媒体服务器三个方面讲解一站式观影平台的搭建过程。

视频文件目录结构的组织

以下是我目前在用的文件组织结构,PT 站点采用了缩写形式:

❯ tree -L 3
.
├── PT
│   ├── MK
│   │   ├── 电视剧
│   │   ├── 电影
│   │   ├── 纪录片
│   │   └── 综艺节目
│   ├── Others
│   │   ├── 电视剧
│   │   ├── 电影
│   │   ├── 纪录片
│   │   ├── 云盘缓存文件
│   │   └── 综艺节目
│   └── CF
│       ├── 电视剧
│       ├── 电影
│       ├── 纪录片
│       └── 综艺节目
└── Videos
    ├── MK
    │   ├── 电视剧
    │   ├── 电影
    │   ├── 纪录片 -> ../../PT/MK/纪录片
    │   └── 综艺节目 -> ../../PT/MK/综艺节目
    ├── Others
    │   ├── 电视剧
    │   ├── 电影
    │   ├── 纪录片 -> ../../PT/Others/纪录片
    │   └── 综艺节目 -> ../../PT/Others/综艺节目
    └── CF
        ├── 电视剧
        ├── 电影
        ├── 纪录片 -> ../../PT/CF/纪录片
        └── 综艺节目 -> ../../PT/CF/综艺节目

34 directories, 0 files

PT 目录下存放视频的源下载文件,按照 PT 站点进行了分类。Others 代表了从迅雷、百度、夸克等网盘或其他手段下载的视频数据,这类数据的主要特点是不用做种。

Videos 目录下存放整理后的视频文件,该目录全部由硬链接或者软链接组成,占用的磁盘空间非常少。

❯ du -sh *
1.9T    PT
214M    Videos

Videos 目录下的每个子目录都有

        ├── 纪录片 -> ../../PT/PTCafe/纪录片
        └── 综艺节目 -> ../../PT/PTCafe/综艺节目

这样的目录软链接,这主要是由于纪录片和综艺节目很难刮削导致的,为确保目录结构的统一性,就把他们软链接到 videos 目录,后续使用 Emby 等媒体服务器,就只需要映射 Videos 目录就行了,避免改动到源文件。

移除某个 PT 站点在这种目录结构下就极其容易了,先在下载器中删除种子,然后删除对应的目录就完事了。新增 PT 站点就添加对应名称文件夹即可。

qBittorrent 的基本配置、文件管理及刷流

之前在迅雷存了 3T 的经典电影,最近想把它们归档到硬盘上,结果气得我肝疼

这也是我开始用 PT 的原因,之前一直觉得管理麻烦没有入坑。

Linux 下 qBittorrent 的安装

不建议使用 docker 或 podman 等容器方式进行安装,如果一定要用,网络一定要选 host 模式,因为桥接模式的网络是默认没有 IPv6 的,没有 IPv6 也就意味着很多节点连不上,上传下载都会受到很大的影响。

包管理器安装

# debian/ubuntu
sudo apt install qbittorrent-nox
# fedora
sudo dnf install qbittorrent-nox

不会自动添加自启动,需要手动创建 service 文件 /etc/systemd/system/qbittorrent-nox.service

[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
User=admin
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target

注意 User=admin 这个字段,用你自己的用户名,不要使用 root,否则下载的文件权限可能会变成 root 组,导致其他用户(包括你现在这个)无法访问。

sudo systemctl daemon-reload
sudo systemctl enable --now qbittorrent-nox

重载服务后,就可以访问 http://[ip]:8080,访问 qbittorrent 网页端了,通过

systemctl status qbittorrent-nox

获取默认的账户密码。

docker 安装

version: "3.3"
services:
    qbittorrent:
        image: linuxserver/qbittorrent:latest
        container_name: qbittorrent
        environment:
            - PUID=1000
            - PGID=1000
            - TZ=Asia/Shanghai
            - WEBUI_PORT=8080
            - TORRENTING_PORT=6881
        volumes:
            - ./config:/config
            - ./downloads:/downloads
        network_mode: host # 启用 host 网络模式
        # ports:
        #   - 8080:8080
        #   - 6881:6881
        #   - 6881:6881/udp
        restart: unless-stopped

注意以下几个地方,以及网络模式要用 host 模式,否则无法利用 IPv6 功能,qBittorrent 没有 IPv6 直接废掉一半。

# 使用的用户
- PUID=1000
- PGID=1000
# 将 PT 目录映射到 /downloads
- /../PT/:/downloads

配置

下载:

如果使用 MP 一类的媒体程序,最好勾选这个扩展名,因为在”自动整理“这个功能中,会自动检测并整理媒体文件,如果不加后缀,会导致文件刚下载就被硬链接整理,如果遇到死种,需要手动删除硬链接文件,不方便。

加了后缀的话,在没下载完成之前是不会被自动整理的。

Torrent 管理模式选择“自动”,在配置好分类及下载路径后就不用手动填写保存路径了。

启用子分类开启,开启后可以将 PT 站名字作为大类,电影/电视剧/综艺节目等作为小类,便于管理。

默认保存路径,做好文件管理后基本用不上这个选项,除非还有 BT 下载需求。

连接

连接限制方面我保持了默认,但如果路由器撑不住,可以考虑降低连接数。

监听端口可以随机一个高位端口,注意让防火墙放行这个端口,否则别的用户可能连不进来。

速度

这个根据个人情况设置,共享是一件好事,但不要把这个事看得太重,毕竟分享也是为了更好地观影,是为了提升自己的使用体验,不好好配置的话,可能会出现以下情况:

  1. 白天被占用大量上传带宽,影响个人及家人网络的正常使用
  2. 上传量过大导致被运营商以 PCDN 名义限速封禁
  3. PT 站点外国人多,白天上传下载人都少
  4. 路由器 CPU 性能不够,长期高负载导致频繁断连

当出现这些情况的时候,就需要限制一下使用情况了。以上只是我个人使用过程中遇到的一些情况,仅供参考。

根据本人测试,我常用的 PT 站白天基本没流量,夜间下载上传速度直线上升。所以我根据自己的实际情况选择白天限制上传,晚上放开。

BitTorrent

分享率,PT 用户一般不会限制分享率,如果同时有 BT 下载任务可以限制一下。

主要作用是限制做种,可以参考速度部分,满足 PT 站要求就行了。

附加 tracker 的话,主要用来下载一些 BT 资源,如果只玩 PT,可以不用附加。

RSS

如果需要订阅某个站点的某部电视剧、动漫,这个功能会很有用,自动追更。

如果你觉得 30 分钟更新订阅频次太低,可以调成 10 分钟。

WebUI

主要是一些安全项,启用跨站请求伪造 (CSRF) 保护 这个选项要取消勾选,否则无法进行反向代理。当然,我这儿是直接把验证都取消了,因为我的防火墙规则非常严格。

懒得输密码的话可以勾选:

  • 对本地主机上的客户端跳过身份验证
  • 对 IP 子网白名单中的客户端跳过身份验证(例如:10.0.0.0/24,192.168.5.0/24)

左侧状态栏分类

按照 PT 站进行分类,这一块要与之前我们的目录结构相结合。

  1. 对于 PT 站 MK,新建一个 MK 大类:

如果你不会直接把视频下载到这个大类,就不用填保存路径。

  1. 在这个大类下添加小类 (子分类)

这里的话就需要填写好对应的下载路径,确保视频被下载到正确的位置。例如 /PT/MK/电影/

还有一点,我怎么快速查找属于每个站的种子呢?

直接使用 tracker 筛选即可。

qBittorrent 的迁移

qBittorrent 迁移比 transmission 复杂一些。

种子在以下文件夹 ~/.local/share/qBittorrent/BT_backup,里面包含了种子文件与状态信息。

整个 qBittorrent 的配置在 ~/.local/shar。e/qBittorrent,也可以直接备份整个文件夹。

务必将它们备份好,重新安装后覆盖还原。

但这只能恢复做种的状态,软件本身的配置还需要重新弄一遍,因此我一般不会在软件默认配置的基础上改动太多。

MP 一站式观影平台搭建

注意:这部分内容不应出现在公开互联网

MoviePilot V2 安装

version: "3.3"
services:
    moviepilot:
        stdin_open: true
        tty: true
        container_name: moviepilot-v2
        hostname: moviepilot-v2
        network_mode: host
        volumes:
            # 下载目录,容器内外要一致
            - "/../视频文件:/../视频文件"
            - "./config:/config"
            - "./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"
            - "SUPERUSER=admin" #超级管理员用户名
            - "SUPERUSER_PASSWORD=!Yan2718281" #超级管理员初始密码
        # 添加自定义 hosts
        extra_hosts:
            - "api.themoviedb.org:65.9.189.27"
            - "api.tmdb.org:65.9.189.48"
            - "www.themoviedb.org:18.67.51.21"
            - "webservice.fanart.tv:51.89.210.79"
            - "api.telegram.org:149.154.167.220"
            - "github.com:20.200.245.247"
            - "api.github.com:20.205.243.168"
            - "raw.githubusercontent.com:185.199.111.133"
            - "api.thetvdb.com:3.170.218.86"

        image: docker.io/jxxghp/moviepilot-v2:latest

extra_host 可能过一段时间就会失效,需要重新找。嫌麻烦的话可以直接上代理。

- "PUID=0"
- "PGID=0"

使用 docker 的话,这两行代码可能会导致权限问题,因为我用的 podman,因此无法确定实际情况,仅供参考。

配置自动刮削和整理

MP 中正确映射目录后应该能看到这样的结构

PT 目录就是我们从 PT 等途径下载到的源文件,Videos 就是我们整理后的文件目录

再看看这个结构,这回就用一个假设为 pt 的站点来举例:

❯ tree -L 3
.
├── PT
│   ├── pt
│   │   ├── 电视剧
│   │   ├── 电影
│   │   ├── 纪录片
│   │   └── 综艺节目
└── Videos
    ├── pt
    │   ├── 电视剧
    │   ├── 电影
    │   ├── 纪录片 -> ../../PT/pt/纪录片
    └── └── 综艺节目 -> ../../PT/pt/综艺节目

首先配置一下 MP 的 API,需要自行在 TMDB 上注册

然后配置自动刮削整理

  1. 资源目录填写 PT/pt/电影,媒体库目录 Videos/pt/电影,根据你的实际目录填写,需要绝对路径。
  2. 自动整理选择目录监控,因为下载器监控必须要在 qbittorrent 里面添加下载器下载才能监控到变化,实际情况往往没有这么理想——用了不支持的 PT 站、qbittorrent 中批量添加了种子、其他下载器下载等。
  3. 整理方式选择硬链接,硬链接不会占用空间。这一点我说明一下,现在先进一点的文件系统,例如 btrfs、zsh 本身就有“写时复制”功能

Btrfs 支持写时复制(COW)特性,通过引用链接(reflink)实现高效的文件复制。使用 –reflink=always 可以确保快速复制而无需实际数据拷贝。

在这种特性下,你使用复制和硬链接基本没区别(Ext4 不支持写时复制)。

  1. 智能重命名和刮削元数据打开。

MP 还可以自定义重命名媒体文件的格式,如果没有特殊需求,用默认即可。

我用的格式去掉了空格,并采用了年份前置。

配置下载器和媒体服务器联动

“系统”这里可以定义下载器和媒体服务器,可以配合支持的 PT 站实现选片下载,一键入库刮削整理功能并刷新媒体服务器功能。

这部分功能可以自行多多探索。

插件推荐

Emby Server 的破解与搭建

可以参考我之前的文章自行创造 Emby 开心版。

Emby 可以直接软链接,因此对于综艺、纪录片,直接添加软链接路径就可以了,但要注意文件夹的权限问题。