利用NAS实现全自动观影追剧的几种方案对比
想象一下打开一个网页,点开搜索框输入想看的电影或者电视剧,只需要点一个按钮,过几分钟对应的高清资源就已经呈现在你的影视库中,刮削完毕,字幕配好,你可以随时在家里的大屏幕或手机的小屏幕上欣赏。上周花了两天时间研究了下这套自动化流程,之前一直是手动去 PT 站下载资源然后用 TinyMediaManager 整理文件并刮削元数据,这显然不够优雅。
我发现了三种实现这个流程的方案,并对这些方案进行了测试,并总结了它们各自的优缺点。最终,我选择了第一种方案,因为它是最成熟和完善的。需要注意的是,我使用 Firefox 浏览器容器来登录 PT 站点并获取 Cookie,你也可以用本地浏览器来实现,如非必要可以不装这个容器,比较占资源。
方案一
qBittorrent + Jackett + Radarr & Sonarr + ChineseSubFinder + Jellyfin + Jellyseerr
说明
- qBittorent没什么好说的,一个常用的 BT 下载器,同类的还有 Transmission。
- Jackett
老牌资源索引器,用于对接 PT、BT 站搜索资源,对于 PT 站支持较好;同类的还可选 Prowlarr,但是对 PT 站支持一般,比如 M-Team 站在 Jackett 上可以成功添加但在 Prowlarr 添加失败(2022-07-24),优点是支持中文,可以对接 Radarr 和 Sonarr 一键设置 Indexer,如果你同时使用大量的 Indexer,使用上会方便很多。 - Radarr/Sonarr
Radarr/Sonarr,一个负责电影,一个负责剧集(电视剧和番剧),是整套系统能够全自动的关键。可以自动整合资源索引器和下载器,当找到了资源时,自动推送到下载器中下载资源;当下载完成时,自动刮削供影视库使用并调用 API 来更新影视库内容,支持配置信息通知。 - ChineseSubFinder
字幕下载器,网上的资源很多并不自带中文字幕,当资源下载完毕后,中文字幕会根据资源的名称自动匹配并下载下来,同类还有 Bazarr。 - Jellyfin
完全免费的影视库,提供了解析资源文件/文件夹,利用 IMDB/TMDB/TVDB 等影视索引网站索引你的本地资源(即刮削),并播放的功能。同类的还有 Emby、Plex、Kodi,除了 Kodi 另外两个影视库部分功能需要付费才可使用。本地播放推荐 Kodi,苹果全家桶用户强烈推荐 Infuse(需要付费订阅但不贵)。 - Jellyseerr/Overserr
整合了 Radarr/Sonarr 的搜索,提供了一个统一的搜索框,让你不用关心到底是 Sonarr 还是 Radarr 负责这类资源,你只需要提供个名字就好。同时还整合了影视库,让你知道什么样的资源已经在库中,而且界面美观易上手。Jellyseerr/Overserr 本质是一样的,只是 Jellyseerr 对接的是 Jellyfin,Overserr 对接的是 Plex,同类的还可选 Ombi(适合 Emby/Plex)。
分析
优点:
- 免费开源,方案成熟度高,拥有较多插件的对接支持
- 搜索界面美观易用,支持手机 APP 管理(Radarr & Sonarr Companion / LunaSea / nzb360),可以同步影音库账号
- 刮削体验优秀,电影刮削对中文支持友好,支持自动中文重命名和资源整理
- 可以实现对资源的监控,自动追番追剧,自动下载和高画质升级
- 支持中文字幕的自动下载
缺点:
- 剧集刮削对于国产剧和番剧支持不好,剧集 INFO 信息和资源整理不支持中文(可以仅开启 Sonarr 的资源整理,让影音库刮削信息),Sonarr WebUI 不支持中文
- 对于 PT 站的支持一般,主要是命名不符合 Sonarr 的规范,如果资源标题中没有季信息,就无法识别匹配资源,所以下载剧集时基本什么都搜不到,添加多个 BT 站可以缓解
- 对于老剧老番支持一般,因为资源主要是来源于 BT 站,比较老的剧集由于没人保种,质量参差不齐,可以手动下载后再导入 Sonarr 自动整理
- 剧集分季不符合国人习惯,Sonarr 的剧集元数据是从 TVDB 拉取的,例如国内【全职猎人 2011】只分为一季,在 Sonarr 上分成了三季
部署
-
部署教程网上部署教程很多,我这里不做赘述,仅提供
docker-compose
配置文件 -
配置文件
version: '3' services: # 资源下载器 # qBittorrent: https://hub.docker.com/r/linuxserver/qbittorrent qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent hostname: qbittorrent restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - WEBUI_PORT=6080 ports: - 6080:6080 - 56881:56881 - 56881:56881/udp volumes: - ./qbittorrent/config:/config - /volume1/video:/video # 影音&下载根目录 # 资源索引器 # Jackett: https://hub.docker.com/r/linuxserver/jackett jackett: image: linuxserver/jackett:latest container_name: jackett hostname: jackett restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - AUTO_UPDATE=true ports: - 9117:9117 volumes: - ./jackett/config:/config # 资源索引器 # Prowlarr: https://hub.docker.com/r/linuxserver/prowlarr # prowlarr: # image: linuxserver/prowlarr:develop # container_name: prowlarr # hostname: prowlarr # restart: always # environment: # - PUID=1026 # - PGID=101 # - TZ=Asia/Shanghai # ports: # - 9696:9696 # volumes: # - ./prowlarr/config:/config # 资源索引器插件(解决 CloudFlare 5秒盾) # FlareSolverr: https://hub.docker.com/r/flaresolverr/flaresolverr flaresolverr: image: flaresolverr/flaresolverr:latest container_name: flaresolverr hostname: flaresolverr restart: always environment: - TZ=Asia/Shanghai - LOG_LEVEL=info # 火狐浏览器(可以不装) # Firefox: https://hub.docker.com/r/fogforest/firefox firefox: image: fogforest/firefox:latest container_name: firefox hostname: firefox restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 3005:3000 volumes: - ./firefox/config:/config shm_size: "1gb" # 资源刮削器(电影) # Radarr: https://hub.docker.com/r/linuxserver/radarr radarr: image: linuxserver/radarr:latest container_name: radarr hostname: radarr restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 7878:7878 volumes: - ./radarr/config:/config - /volume1/video:/video # 影音&下载根目录 # 资源刮削器(电视剧&番剧) # Sonarr: https://hub.docker.com/r/linuxserver/sonarr sonarr: image: linuxserver/sonarr:latest container_name: sonarr hostname: sonarr restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 8989:8989 volumes: - ./sonarr/config:/config - /volume1/video:/video # 影音&下载根目录 # 字幕刮削器 # ChineseSubFinder: https://hub.docker.com/r/allanpk716/chinesesubfinder chinesesubfinder: image: allanpk716/chinesesubfinder:latest container_name: chinesesubfinder hostname: chinesesubfinder restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - PERMS=true - UMASK=022 ports: - 19035:19035 - 19037:19037 volumes: - ./chinesesubfinder/config:/config - /volume1/video:/media # 影音&下载根目录 # 影音库 # Jellyfin: https://hub.docker.com/r/nyanmisaka/jellyfin jellyfin: image: nyanmisaka/jellyfin:latest container_name: jellyfin hostname: jellyfin restart: always devices: - /dev/dri:/dev/dri environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 8096:8096 volumes: - ./jellyfin/config:/config - /volume1/video:/media # 影音&下载根目录 # 资源聚合搜索 # Jellyseerr: https://hub.docker.com/r/fallenbagel/jellyseerr jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr hostname: jellyseerr restart: always environment: - TZ=Asia/Shanghai - LOG_LEVEL=debug ports: - 5055:5055 volumes: - ./jellyseerr/config:/app/config watchtower: image: containrrr/watchtower:latest container_name: watchtower hostname: watchtower restart: always command: -c -s "0 3 * * *" environment: - TZ=Asia/Shanghai volumes: - /var/run/docker.sock:/var/run/docker.sock networks: default: driver: bridge name: video_net
方案二
qBittorrent + Jackett + NASTool + ChineseSubFinder + Jellyfin
说明
- NASTool媒体库资源归集整理工具,替代了方案一的 Radarr & Sonarr,由国人开发对中文支持很好
分析
优点:
- 开源免费,版本迭代很快,有现成的群晖套件,部署相对简单
- 对 PT 站非常友好,支持自动登录保号签到,聚合资源搜索匹配,支持限制做种时间
- 专为中文环境优化,支持国产剧集和动漫,重命名和刮削准确率高,剧集分季符合国人习惯,支持细化分类,高质量文件自动覆盖
- 支持与豆瓣联动,在豆瓣中标记想看后台自动检索下载,未出全的自动加入订阅,资源自动实时追新
- 支持 ServerChan、微信、Telegram、Bark 等图文消息通知,符合国内网络环境,支持通过微信、Telegram 远程控制订阅和下载
- 支持对接 Emby/Jellyfin/Plex,通知播放状态
缺点:
- 不支持对接 Jellyseerr/Overserr,期待后续更新
- 可能存在一些影响体验的小 BUG(2022-07-24)
部署
-
部署教程作者提供了部署文档和视频教程
-
配置文件
version: '3' services: # 资源下载器 # qBittorrent: https://hub.docker.com/r/linuxserver/qbittorrent qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent hostname: qbittorrent restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - WEBUI_PORT=6080 ports: - 6080:6080 - 56881:56881 - 56881:56881/udp volumes: - ./qbittorrent/config:/config - /volume1/video:/video # 影音&下载根目录 # 资源索引器 # Jackett: https://hub.docker.com/r/linuxserver/jackett jackett: image: linuxserver/jackett:latest container_name: jackett hostname: jackett restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - AUTO_UPDATE=true ports: - 9117:9117 volumes: - ./jackett/config:/config # 资源索引器插件(解决 CloudFlare 5秒盾) # FlareSolverr: https://hub.docker.com/r/flaresolverr/flaresolverr flaresolverr: image: flaresolverr/flaresolverr:latest container_name: flaresolverr hostname: flaresolverr restart: always environment: - TZ=Asia/Shanghai - LOG_LEVEL=info # 资源刮削归集整理 # NASTool: https://github.com/jxxghp/nas-tools/wiki nastools: image: jxxghp/nas-tools:latest container_name: nastools hostname: nastools restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - UMASK=022 ports: - 3010:3000 volumes: - ./nastools/config:/config - /volume1/video:/video # 影音&下载根目录 # 字幕刮削器 # ChineseSubFinder: https://hub.docker.com/r/allanpk716/chinesesubfinder chinesesubfinder: image: allanpk716/chinesesubfinder:latest container_name: chinesesubfinder hostname: chinesesubfinder restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - PERMS=true - UMASK=022 ports: - 19035:19035 - 19037:19037 volumes: - ./chinesesubfinder/config:/config - /volume1/video:/media # 影音&下载根目录 # 影音库 # Jellyfin: https://hub.docker.com/r/nyanmisaka/jellyfin jellyfin: image: nyanmisaka/jellyfin:latest container_name: jellyfin hostname: jellyfin restart: always devices: - /dev/dri:/dev/dri environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 8096:8096 volumes: - ./jellyfin/config:/config - /volume1/video:/media # 影音&下载根目录 watchtower: image: containrrr/watchtower:latest container_name: watchtower hostname: watchtower restart: always command: -c -s "0 3 * * *" environment: - TZ=Asia/Shanghai volumes: - /var/run/docker.sock:/var/run/docker.sock networks: default: driver: bridge name: video_net
方案三
qBittorrent + Movie Robot + ChineseSubFinder + Jellyfin
说明
分析
优点:
- 几乎拥有方案二的所有优点,支持智能订阅下载,个人感觉 WebUI 比 NASTool 好看点
- 支持 Emby\Jellyfin 影音库的深度删除,支持中文演员刮削
- 多用户多种渠道均支持订阅,支持对接 Jellyseerr/Overserr
- 设置简单,对 PT 用户友好,无需 Jackett,支持绝大多数站点的对接和养护
缺点:
- 闭源收费,开始是开源的,后来闭源开启捐赠(128 元),目前涨价成 168 元(2022-07-24)
部署
-
部署教程参考官方提供的 Wiki 文档即可
https://yee329.notion.site/yee329/Movie-Robot-Wiki-9abef8c648c840fca47a0bf308957f85
-
配置文件
version: '3' services: # 资源下载器 # qBittorrent: https://hub.docker.com/r/linuxserver/qbittorrent qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent hostname: qbittorrent restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - WEBUI_PORT=6080 ports: - 6080:6080 - 56881:56881 - 56881:56881/udp volumes: - ./qbittorrent/config:/config - /volume1/video:/video # 影音&下载根目录 # 资源索引器 # Jackett: https://hub.docker.com/r/linuxserver/jackett jackett: image: linuxserver/jackett:latest container_name: jackett hostname: jackett restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - AUTO_UPDATE=true ports: - 9117:9117 volumes: - ./jackett/config:/config # 资源索引器插件(解决 CloudFlare 5秒盾) # FlareSolverr: https://hub.docker.com/r/flaresolverr/flaresolverr flaresolverr: image: flaresolverr/flaresolverr:latest container_name: flaresolverr hostname: flaresolverr restart: always environment: - TZ=Asia/Shanghai - LOG_LEVEL=info # 资源刮削归集整理 # Movie Robot: https://github.com/pofey/movie_robot movie_robot: image: yipengfei/movie-robot:latest container_name: movie_robot hostname: movie_robot restart: always environment: - TZ=Asia/Shanghai - LICENSE_KEY=KoRxhz1z6QhzXvowb8Kp4q6wRa0klzVjUaT9qcQZbjHt8GzSOeZbd8DRMW4HX4psMwnDYiWgh8bigjc56OaiqzKR9gnHmSGJYbcdmoE7hlDPfjs4HVZdxdOVHFdCAL1v # 试用Key ports: - 1329:1329 volumes: - ./movie-robot/data:/data - /volume1/video:/video # 影音&下载根目录 # 字幕刮削器 # ChineseSubFinder: https://hub.docker.com/r/allanpk716/chinesesubfinder chinesesubfinder: image: allanpk716/chinesesubfinder:latest container_name: chinesesubfinder hostname: chinesesubfinder restart: always environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai - PERMS=true - UMASK=022 ports: - 19035:19035 - 19037:19037 volumes: - ./chinesesubfinder/config:/config - /volume1/video:/media # 影音&下载根目录 # 影音库 # Jellyfin: https://hub.docker.com/r/nyanmisaka/jellyfin jellyfin: image: nyanmisaka/jellyfin:latest container_name: jellyfin hostname: jellyfin restart: always devices: - /dev/dri:/dev/dri environment: - PUID=1026 - PGID=101 - TZ=Asia/Shanghai ports: - 8096:8096 volumes: - ./jellyfin/config:/config - /volume1/video:/media # 影音&下载根目录 watchtower: image: containrrr/watchtower:latest container_name: watchtower hostname: watchtower restart: always command: -c -s "0 3 * * *" environment: - TZ=Asia/Shanghai volumes: - /var/run/docker.sock:/var/run/docker.sock networks: default: driver: bridge name: video_net
补充说明
网络
网络访问不通畅的可以用小猫咪,懂的用,不懂的请勿操作
version: '3'
services:
clash:
image: dreamacro/clash-premium
container_name: clash
hostname: clash
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 7890:7890 # http
- 7891:7891 # sock5
- 9090:9090 # rest api
volumes:
- ./clash/config:/root/.config/clash
clash_web:
image: haishanh/yacd
container_name: clash_web
hostname: clash_web
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 80:80
depends_on:
- clash
BT 站
要想资源质量高下载快,建议去寻找高质量的 PT 站
BitTorrent Tracker 列表:XIU2/TrackersListCollection
网站 | 地址 | 类型 |
---|---|---|
萌番组 | https://bangumi.moe/ | 动漫 |
蜜柑计划 | https://mikanani.me/ | 动漫 |
动漫花园 | https://dmhy.org/ | 动漫 |
漫猫动漫 | http://www.comicat.org/ | 动漫 |
ACG.RIP | https://acg.rip/ | 动漫 |
Nyaa.si | https://nyaa.si/ | 动漫 |
EZTV | https://eztv.re/ | 综合 |
RARBG | https://rargb.to/ | 综合 |
海盗湾 | https://thepiratebay.org/ | 综合 |