利用NAS实现全自动观影追剧的几种方案对比

https://fairysen.com/788.html

想象一下打开一个网页,点开搜索框输入想看的电影或者电视剧,只需要点一个按钮,过几分钟对应的高清资源就已经呈现在你的影视库中,刮削完毕,字幕配好,你可以随时在家里的大屏幕或手机的小屏幕上欣赏。上周花了两天时间研究了下这套自动化流程,之前一直是手动去 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 配置文件

https://leishi.io/blog/posts/2021-12/home-nas-media-center/

问题参考

硬链接配置

Sonarr 高级整理

Radarr 重命名文件夹和文件为中文

添加代理

配置文件

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)

部署

部署教程作者提供了部署文档和视频教程

https://github.com/jxxghp/nas-tools/wiki

配置文件

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

说明

Movie Robot

分析

优点:

几乎拥有方案二的所有优点,支持智能订阅下载,个人感觉 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:

***:

image: dreamacro/***-premium

container_name: ***

hostname: ***

restart: always

environment:

- TZ=Asia/Shanghai

ports:

- 7890:7890 # http

- 7891:7891 # sock5

- 9090:9090 # rest api

volumes:

- ./***/config:/root/.config/***

***_web:

image: haishanh/yacd

container_name: ***_web

hostname: ***_web

restart: always

environment:

- TZ=Asia/Shanghai

ports:

- 80:80

depends_on:

- ***

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/

综合

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议