天天看點

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

作者:什麼值得買

本内容來源于@什麼值得買APP,觀點僅代表作者本人 |作者:LifeIsKillingMe

今天繼續跟大家分享一下NAS折騰的曆程,去年年底入了瑞芯RK3588的Rock 5b開發闆,因為是16GB的頂配版,是以可玩性非常不錯,可以在上面加裝傳感器,安裝各種各樣的Docker容器,實作各式複雜的功能。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

安裝了OpenMediaVault(簡稱OMV)之後,主要使用的是裝駁在開發闆上的西數SN350固态硬碟作為存儲。我會将下載下傳的電影放在smb存儲中,然後通過海美迪電視盒子區域網路播放。

不久前有幸在張大媽衆測中了一個麥沃的K35262C的雙盤位陣列盒,加裝了兩個1TB的機械硬碟組成了RAID0,因為RAID0傳輸效率最高,适合對于資料安全完整性要求不高的場景。評測文寫完了,多出來的2TB存儲空間沒法充分利用,有點浪費,于是想着趁此機會嘗試搭建豆瓣自動追影系統。

這裡記述一下整個過程作為備份,供大家參考,我把期間遇到的問題和解決方法也特意标出了。内容較多全文近7000字,我懶得分成系列文章了,搞來搞去就是賺個幾塊錢的金币,大家看起來也麻煩。

自動追劇觀影的幾個方案

我在站内浏覽了大量相關方案的文章,國内玩家使用較多比較主流的就是這三種,NASTools、Video-Tools、Movie Robot。我自己嘗試了前兩個,因為Movie Robot需付費才能使用,價格還不便宜,是以直接放棄了。

NASTools自動化程度很高,UI界面很清晰,但是3.0.0版本之後需要綁定某些PT站點登入才能實作所有功能,對于不玩PT的玩家很不友好。我安裝了2.9.1的版本Docker不斷重新開機,無法正常使用。

Video-Tools沒有圖形界面,作者更新不頻繁,遇到問題自行解決需要一定技術能力。我安裝直接失敗,盲猜大概Video-Tools不支援ARM64架構?

是以幹脆還是嘗試了下外國的幾個開源方案的組合,也就是flaresolverr+jackett+qbittorrent+chinesesubfinder+radarr+sonarr+jellyfin。看起來比較多,其實裝起來還挺友善的。

NAS中預建相關檔案夾

首先在OMV中檢視我的存儲共享檔案夾的絕對位址是:/srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share。我這裡把所有視訊檔案、系統檔案都放到了同一個共享目錄中,友善管理。PUTTY裡登入到開發闆Debian系統,在共享檔案夾中建立所需檔案夾:

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/jackett

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/qbittorrent

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/radarr

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/tv

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/animation

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/movie

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/other

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/vr

mkdir -p /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/game

大家可以根據自己情況修改相關指令。

這裡還遇到一個問題,Docker鏡像在預設網絡設定下載下傳不了,修改為軟路由又出現路由錯誤。

這是因為軟路由Openwrt安裝在同一台主控端下,配置為macvlan模式,預設容器和主控端無法直接通訊,網上找到的方法,添加一個子網口和相關路由,使得二者可以直接通訊:

sudo ip link add foobar link enP4p65s0 type macvlan mode bridge

sudo ip addr add 192.168.1.252/32 dev foobar

sudo ip link set foobar up

sudo ip route add 192.168.1.111/32 dev foobar

這裡enp7s0是實體網卡的名字,192.168.1.252/32是新建立的子網口IP位址,192.168.1.111/32是使用macvlan的IP位址,這裡就是軟路由的IP位址。

改完之後再Pull Image就沒問題了,但是注意主控端重新開機後這一設定不會儲存,需要添加為開機腳本。

安裝Flaresolverr

flaresolverr 主要作用:用于一些indexer無法通過jackett通路cloudflare的問題,允許使用者通路網站而無需輸入驗證碼。

docker run -d

--name=flaresolverr

-p 8191:8191

-e LOG_LEVEL=info

-e TEST_URL=https://www.baidu.com

--restart unless-stopped

ghcr.io/flaresolverr/flaresolverr:latest

執行完指令等待容器啟動完成,浏覽器通路8191端口,出現以下字樣說明配置成功。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

安裝Jackett

Jackett是一款開源的搜尋發現軟體。它提供了一個靈活的引擎,以搜尋跨多個網絡流媒體源及位于網絡之外的大型私人托管源。

docker run -d

--name=jackett

-e PUID=1000

-e PGID=1000

-e TZ=Asia/Shanghai

-e AUTO_UPDATE=true

-p 9117:9117

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/jackett:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

--restart unless-stopped

lscr.io/linuxserver/jackett:latest

在配置中設定管理者密碼。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

将之前FlareSolverr的位址填入并儲存。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

下面比較繁瑣的一步就是添加Indexer,國内Public的站點比較少,國外站點挺多,實測也能下載下傳。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

國内Private站點大家可以點進去看看是否開放注冊。

安裝qbittorrent

qbittorrent是方案中用來BT下載下傳的工具。

docker run -d

--name=qbittorrent

-e PUID=1000

-e PGID=1000

-e TZ=Asia/Shanghai

-e WEBUI_PORT=8081

-p 8081:8081

-p 6881:6881

-p 6881:6881/udp

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/qbittorrent:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

--restart unless-stopped

docker.io/linuxserver/qbittorrent:latest

浏覽器通路8081端口,使用者名admin,密碼adminadmin登入。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

這裡建議修改幾個設定,啟用UPnP,修改6881端口為随機端口,因為我發現某些網站會封禁6881端口。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

網上搜尋找到Trackers清單拷到框内。其他設定可以酌情修改,比如同時下載下傳的作業數量,實測不少作業下載下傳速度為0也算是active downloads,這個參數可以提高一點。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

同時勾選選項-進階中的總是向同級的所有Tracker彙報。

安裝radarr

Radarr配合Jackett,可以友善地對電影查詢下載下傳,同時Radarr的電影海報牆也能省去我們管理電影的麻煩。

docker run -d

--name=radarr

-e PUID=1000

-e PGID=1000

-e TZ=Asia/Shanghai

-p 7878:7878

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/radarr:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/tv:/tv

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/animation:/animation

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/movie:/movie

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/other:/other

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/vr:/vr

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/game:/game

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

--restart unless-stopped

docker.io/linuxserver/radarr:latest

浏覽器通路7878端口,可将界面UI語言改成中文,在媒體管理裡添加根目錄,除了Download檔案夾以外,其他目錄都要添加。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

添加qBittorrent下載下傳用戶端。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

添加索引器,URL為Jackett中的Copy Torznab Feed的内容,在Jackett同一頁面裡還可以查到API Key,一并填入。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

然後可以嘗試手工搜尋電影,看看有沒有問題:

安裝sonarr

sonarr用于下載下傳美劇,因為最近都用網飛看劇了,暫時沒有安裝,方法和radarr基本相同。注意sonarr不支援中文。

docker run -d

--name=sonarr

-e PUID=1000

-e PGID=1000

-e TZ=Asia/Shanghai

-p 8989:8989

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/sonarr:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/tv:/tv

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/animation:/animation

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/movie:/movie

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/other:/other

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/vr:/vr

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/game:/game

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

--restart unless-stopped

docker.io/linuxserver/sonarr:latest

安裝jellyfin

Jellyfin是一個自由軟體媒體系統,它讓您能夠控制管理和流媒體。它是專有Emby和Plex的替代方案,可以通過多個應用程式從專用伺服器向最終使用者裝置提供媒體。Jellyfin是Emby 3.5.2版本的派生版本,并移植到.NET Core架構,以實作完全的跨平台支援。

docker run -d

--name=jellyfin

-e PUID=1000

-e PGID=1000

-e TZ=Asia/Shanghai

-e JELLYFIN_PublishedServerUrl=修改為自己的IP位址

-p 8096:8096

-p 8920:8920

-p 7359:7359/udp

-p 1900:1900/udp

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/jellyfin:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/tv:/tv

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/animation:/animation

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/movie:/movie

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/other:/other

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/vr:/vr

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/game:/game

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

--device /dev/dri:/dev/dri

--restart unless-stopped

nyanmisaka/jellyfin:latest

安裝完成後通路8096端口,完成賬号等簡單配置即可實作電影牆效果。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

其他可以酌情設定,比如利用MetaShark來更新電影中繼資料。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

發現linux系統對中文的字型支援的不好,ass字幕的Jellyfin支援也不是很好,顯示為方格,解決方法如下:

找到設定-字幕選擇下面的選項

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

強制字型為微軟雅黑:下載下傳msyh.woff2字型檔案拷貝到共享檔案夾中。

設定->控制台->播放

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

如果嘗試以上方法字幕依然顯示不正常,可以在Jellyfin的docker中直接安裝字幕檔案:

#列出容器ID

docker ps

#進入容器

docker exec -it 容器ID /bin/bash

#安裝字型

apt update

apt install fonts-noto-cjk-extra

我是做了這步後終于字幕顯示正常了。

Jellyfin在手機和電視盒子上都有相應的APP,簡單配置後即可使用。

安裝chinesesubfinder

Jellyfin裡自帶下載下傳字幕的插件:

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

安裝完成後需要重新開機jellyfin伺服器,然後就可以通過點選電影旁邊的三個點,調出字幕下載下傳界面。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣
豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

上述截圖選自站内分享文章,我實測Open Subtitles都搜不出字幕,僅供大家參考,建議還是安裝chinesesubfinder。

docker run -d

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/appdata/chinesesubfinder:/config

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources:/media

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/tv:/tv

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/animation:/animation

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/movie:/movie

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/other:/other

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/vr:/vr

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/game:/game

-v /srv/dev-disk-by-uuid-1a88bf67-49bf-4d91-87b6-84017962a7b5/share/resources/downloads:/downloads

-e PUID=1000

-e PGID=1000

-e PERMS=true `# 是否重設/media權限`

-e TZ=Asia/Shanghai `# 時區`

-e UMASK=022 `# 權限掩碼`

-p 19035:19035

-p 19037:19037 `# webui 的視訊清單讀取圖檔用,務必設定不要暴露到外網`

--name chinesesubfinder

--hostname chinesesubfinder

--log-driver "json-file"

--log-opt "max-size=100m" `# 限制docker控制台日志大小,可自行調整`

allanpk716/chinesesubfinder:v0.53.3

浏覽器通路19035端口,在裡面選擇Jellyfin。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

預設是6小時自動掃描媒體庫,也可以自己手動更新緩存手工點選下載下傳字幕。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

實測不少電影還是找不到字幕,建議在字幕源設定裡添加其他網站的API。

自動下載下傳字幕的效果是這樣的,然後在Jellyfin裡電影播放界面點選cc按鈕即可加載中文字幕。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

安裝RSSHUB

如果按照我的教程操作到這步,已經基本完成自動追劇系統搭建了,但是我的目的是要自動下載下傳豆瓣我想看裡的片單,因為這幾十年來所有觀影記錄都儲存在豆瓣裡,還有1199部想看但是還沒有看的影視作品,任重而道遠。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

這裡就要請出RSSHUB了,RSSHub是一個開源、簡單易用、易于擴充的RSS生成器,可以給任何奇奇怪怪的内容生成 RSS 訂閱源。RSSHub借助于開源社群的力量快速發展中,目前已适配數百家網站的上千項内容,可以配合浏覽器擴充RSSHub Radar (opens new window)和移動端輔助App RSSBud (opens new window)(iOS) 與 RSSAid (opens new window)(Android) 使用。

可以通過vercel線上搭建RSSHub,但是實測更容易被豆瓣的反爬機制發現被封,還是通過Docker本地搭建靠譜。

運作下面的指令下載下傳 RSSHub 鏡像

$ docker pull diygod/rsshub

然後運作 RSSHub 即可

$ docker run -d --name rsshub -p 1200:1200 diygod/rsshub

此時浏覽器打開1200端口,似乎看不出什麼。研究一下RSSHUB裡關于豆瓣的訂閱文檔。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

按照頁面中的文法,調取豆瓣自己想看的電影清單應該是這個URL。pagesCount參數是顯示的頁數。

http://192.168.1.66:1200/douban/people/32XXXXX/wish/pagesCount=200

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

後面的操作就簡單了,到Radarr中的清單裡添加自定義清單,指定為從這個URL抓取資訊。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

随後回到Rararr的電影首頁裡,就可以看到已經在自動監控清單裡的電影了。不過這個用電影名字比對的方式準确性一般,如果有名字相同或類似的電影往往容易找錯電影,我這裡就莫名出現了不少情色片。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

沒過多久,就可以注意到qbittorrent頁面添加了大量電影開始下載下傳了。因為我想看的電影大多都是舊片,種子較少,下載下傳速度一般,而我的設定又是2160p高清片源優先......不過NAS可以24小時挂機下載下傳。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

Radarr電影下載下傳完成/更新提醒

本來我是想通過微信提醒Radarr電影下載下傳完成的,也找到了相關的項目腳本。

Oscar1011/XarrNotifyScripts

這個項目需要依托企業微信應用,但是現在企業微信應用要求在受信任IP位址中使用,自己搭建伺服器非常繁瑣,得不償失。碰巧發現IOS裡有個APP “LunaSea”也可以實作通知的功能,需要在美國App Store中下載下傳。

在Radarr的設定-安全-API秘鑰中擷取API的值。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

手機上進到LunaSea裡Radarr的設定Connection Details裡。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

分别填入Host位址和API值,測試通過。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

這樣即可在手機APP裡檢視管理Radarr中的電影作業了。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

而要想實作實時通知功能,需要用到Radarr通知連接配接裡的Webhook。

在LunaSea裡打開Settings-Notifications,點選Radarr裡的Device按鈕,會自動将URL拷貝至剪貼闆。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

回到Radarr的設定-通知連接配接-添加連接配接Webhook,将之前的URL填入,方式為POST,即可完成配置。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

如此一旦抓取或者下載下傳完新電影,都會手機通知我,非常友善。

豆瓣自動追影追劇NAS系統搭建,閱讀收藏這一篇文章足矣

總結

至此豆瓣自動追影追劇系統搭建完成,因為其間安裝配置的Docker比較多,最好提前安裝好Portainer友善管理這些容器。雖然操作略顯繁瑣,但是用到的都是開源方案,自由度比較高,友善自行DIY,建議大家點贊收藏此文,以防日後需要。謝謝大家支援!

繼續閱讀