jxxghp-nas-toolsNAS 媒體庫(kù)資源歸集
nas-tools 是 NAS 媒體庫(kù)資源歸集、整理自動(dòng)化工具。
功能:
本軟件的初衷是實(shí)現(xiàn)影視資源的自動(dòng)化管理,釋放雙手、聚焦觀影。需要有良好的網(wǎng)絡(luò)環(huán)境及私有站點(diǎn)才能獲得較好的使用體驗(yàn)。
1、資源檢索和訂閱
- 站點(diǎn)RSS聚合,想看的加入訂閱,資源自動(dòng)實(shí)時(shí)追新。
- 通過(guò)微信、Telegram、Slack或者WEB界面聚合資源搜索下載,最新熱門資源一鍵搜索或者訂閱。
- 與豆瓣聯(lián)動(dòng),在豆瓣中標(biāo)記想看后臺(tái)自動(dòng)檢索下載,未出全的自動(dòng)加入訂閱。
2、媒體庫(kù)整理
- 監(jiān)控下載軟件,下載完成后自動(dòng)識(shí)別真實(shí)名稱,硬鏈接到媒體庫(kù)并重命名。
- 對(duì)目錄進(jìn)行監(jiān)控,文件變化時(shí)自動(dòng)識(shí)別媒體信息硬鏈接到媒體庫(kù)并重命名。
- 解決保種與媒體庫(kù)整理沖突的問(wèn)題,專為中文環(huán)境優(yōu)化,支持國(guó)產(chǎn)劇集和動(dòng)漫,重命名準(zhǔn)確率高,改名后Emby/Jellyfin/Plex 100%搜刮。
3、站點(diǎn)養(yǎng)護(hù)
- 全面的站點(diǎn)數(shù)據(jù)統(tǒng)計(jì),實(shí)時(shí)監(jiān)測(cè)你的站點(diǎn)流量情況。
- 全自動(dòng)化托管養(yǎng)站,支持遠(yuǎn)程下載器。
- 站點(diǎn)每日自動(dòng)登錄保號(hào)。
4、消息服務(wù)
- 支持ServerChan、微信、Slack、Telegram、Bark、PushPlus、愛語(yǔ)飛飛等圖文消息通知
- 支持通過(guò)微信、Telegram、Slack遠(yuǎn)程控制訂閱和下載。
- Emby/Jellyfin/Plex播放狀態(tài)通知。
安裝
1、Docker
docker pull jxxghp/nas-tools:latest
教程見 這里 ,如無(wú)法連接Github,注意不要開啟自動(dòng)更新開關(guān)(NASTOOL_AUTO_UPDATE=false)。
2、本地運(yùn)行
python3版本,如發(fā)現(xiàn)缺少依賴包需額外安裝
git clone -b master https://github.com/jxxghp/nas-tools --recurse-submodule
python3 -m pip install -r requirements.txt
export NASTOOL_CONFIG="/xxx/config/config.yaml"
nohup python3 run.py &
3、Windows
下載exe文件,雙擊運(yùn)行即可,會(huì)自動(dòng)生成配置文件目錄
https://github.com/jxxghp/nas-tools/releases
4、群暉套件
添加礦神群暉SPK套件源直接安裝:
配置
1、申請(qǐng)相關(guān)API KEY
-
申請(qǐng)TMDB用戶,在 https://www.themoviedb.org/ 申請(qǐng)用戶,得到API KEY。
-
申請(qǐng)消息通知服務(wù)
-
微信(推薦):在 https://work.weixin.qq.com/ 申請(qǐng)企業(yè)微信自建應(yīng)用,獲得企業(yè)ID、自建應(yīng)用secret、agentid
微信掃描自建應(yīng)用二維碼可實(shí)現(xiàn)在微信中使用消息服務(wù),無(wú)需打開企業(yè)微信
-
Server醬:或者在 https://sct.ftqq.com/ 申請(qǐng)SendKey
-
Telegram(推薦):關(guān)注BotFather申請(qǐng)機(jī)器人獲取token,關(guān)注getuserID拿到chat_id
-
Bark:安裝Bark客戶端獲得KEY,可以自建Bark服務(wù)器或者使用默認(rèn)的服務(wù)器
-
Slack:在 https://api.slack.com/apps 申請(qǐng)應(yīng)用,詳情參考頻道說(shuō)明
-
其它:仍然會(huì)持續(xù)增加對(duì)通知渠道的支持,API KEY獲取方式類似,不一一說(shuō)明
-
2、基礎(chǔ)配置
-
文件轉(zhuǎn)移模式說(shuō)明:目前支持六種模式:復(fù)制、硬鏈接、軟鏈接、移動(dòng)、RCLONE、MINIO。
-
復(fù)制模式下載做種和媒體庫(kù)是兩份,多占用存儲(chǔ)(下載盤大小決定能保多少種),好處是媒體庫(kù)的盤不用24小時(shí)運(yùn)行可以休眠;
-
硬鏈接模式不用額外增加存儲(chǔ)空間,一份文件兩份目錄,但需要下載目錄和媒體庫(kù)目錄在一個(gè)磁盤分區(qū)或者存儲(chǔ)空間;軟鏈接模式就是快捷方式,需要容器內(nèi)路徑與真實(shí)路徑一致才能正常使用;
-
移動(dòng)模式會(huì)移動(dòng)和刪除原文件及目錄;
-
RCLONE模式只針對(duì)RCLONE網(wǎng)盤使用場(chǎng)景,注意,使用RCLONE模式需要自行映射rclone配置目錄到容器中,具體參考設(shè)置項(xiàng)小問(wèn)號(hào)說(shuō)明;
-
MINIO只針對(duì)S3/云原生場(chǎng)景,注意,使用MINIO,媒體庫(kù)應(yīng)當(dāng)設(shè)置為/bucket名/類別名,例如,bucket的名字叫cloud,電影的分類文件夾名叫movie,則媒體庫(kù)電影路徑為:/cloud/movie,最好母集用s3fs掛載到/cloud/movie,只讀就行。
-
-
啟動(dòng)程序并配置:Docker默認(rèn)使用3000端口啟動(dòng)(群暉套件默認(rèn)3003端口),默認(rèn)用戶密碼:admin/password(docker需要參考教程提前映射好端口、下載目錄、媒體庫(kù)目錄)。登錄管理界面后,在設(shè)置中根據(jù)每個(gè)配置項(xiàng)的提示在WEB頁(yè)面修改好配置并重啟生效(基礎(chǔ)設(shè)置中有標(biāo)紅星的是必須要配置的,如TMDB APIKEY等),每一個(gè)配置項(xiàng)后都有小問(wèn)號(hào),點(diǎn)擊會(huì)有詳細(xì)的配置說(shuō)明,推薦閱讀。
3、設(shè)置媒體庫(kù)服務(wù)器
支持 Emby(推薦)、Jellyfin、Plex,設(shè)置媒體服務(wù)器后可以對(duì)本地資源進(jìn)行判重避免重復(fù)下載,同時(shí)能標(biāo)識(shí)本地已存在的資源:
- 在Emby/Jellyfin/Plex的Webhook插件中,設(shè)置地址為:http(s)://IP:PORT/emby、jellyfin、plex,用于接收播放通知(可選)
- 將Emby/Jellyfin/Plex的相關(guān)信息配置到”設(shè)置-》媒體服務(wù)器“中
- 如果啟用了默認(rèn)分類,需按如下的目錄結(jié)構(gòu)分別設(shè)置好媒體庫(kù);如是自定義分類,請(qǐng)按自己的定義建立好媒體庫(kù)目錄,分類定義請(qǐng)參考default-category.yaml分類配置文件模板。注意,開啟二級(jí)分類時(shí),媒體庫(kù)需要將目錄設(shè)置到二級(jí)分類子目錄中(可添加多個(gè)子目錄到一個(gè)媒體庫(kù),也可以一個(gè)子目錄設(shè)置一個(gè)媒體庫(kù)),否則媒體庫(kù)管理軟件可能無(wú)法正常搜刮識(shí)別。
電影
精選 華語(yǔ)電影 外語(yǔ)電影 動(dòng)畫電影
電視劇
國(guó)產(chǎn)劇 歐美劇 日韓劇 動(dòng)漫 紀(jì)錄片 綜藝 兒童
4、配置下載器及下載目錄
支持qbittorrent(推薦)、transmission、aria2、115網(wǎng)盤等,右上角按鈕設(shè)置好下載目錄。
5、配置同步目錄
- 目錄同步可以對(duì)多個(gè)分散的文件夾進(jìn)行監(jiān)控,文件夾中有新增媒體文件時(shí)會(huì)自動(dòng)進(jìn)行識(shí)別重命名,并按配置的轉(zhuǎn)移方式轉(zhuǎn)移到媒體庫(kù)目錄或指定的目錄中。
- 如將下載軟件的下載目錄也納入目錄同步范圍的,建議關(guān)閉下載軟件監(jiān)控功能,否則會(huì)觸發(fā)重復(fù)處理。
5、配置微信/Slack/Telegram遠(yuǎn)程控制
配置好微信、Slack或Telegram機(jī)器人后,可以直接通過(guò)微信/Slack/Telegram機(jī)器人發(fā)送名字實(shí)現(xiàn)自動(dòng)檢索下載,以及通過(guò)菜單控制程序運(yùn)行。
- 微信消息推送及回調(diào)
- 配置消息推送代理
由于微信官方限制,2022年6月20日后創(chuàng)建的企業(yè)微信應(yīng)用需要有固定的公網(wǎng)IP地址并加入IP白名單后才能接收到消息,使用有固定公網(wǎng)IP的代理服務(wù)器轉(zhuǎn)發(fā)可解決該問(wèn)題
如使用nginx搭建代理服務(wù),需在配置中增加以下代理配置:
```
location /cgi-bin/gettoken {
proxy_pass https://qyapi.weixin.qq.com;
}
location /cgi-bin/message/send {
proxy_pass https://qyapi.weixin.qq.com;
}
```
如使用Caddy搭建代理服務(wù),需在配置中增加以下代理配置(`{upstream_hostport}` 部分不是變量,不要改,原封不動(dòng)復(fù)制粘貼過(guò)去即可)。
```
reverse_proxy https://qyapi.weixin.qq.com {
header_up Host {upstream_hostport}
}
```
注意:代理服務(wù)器僅適用于在微信中接收工具推送的消息,消息回調(diào)與代理服務(wù)器無(wú)關(guān)。
-
配置微信消息接收服務(wù) 在企業(yè)微信自建應(yīng)用管理頁(yè)面-》API接收消息 開啟消息接收服務(wù):
-
在微信頁(yè)面生成Token和EncodingAESKey,并在NASTool設(shè)置->消息通知->微信中填入對(duì)應(yīng)的輸入項(xiàng)并保存。
-
重啟NASTool。
-
微信頁(yè)面地址URL填寫:http(s)://IP:PORT/wechat,點(diǎn)確定進(jìn)行認(rèn)證。
-
-
配置微信菜單控制 通過(guò)菜單遠(yuǎn)程控制工具運(yùn)行,在https://work.weixin.qq.com/wework_admin/frame#apps 應(yīng)用自定義菜單頁(yè)面按如下圖所示維護(hù)好菜單,菜單內(nèi)容為發(fā)送消息,消息內(nèi)容隨意。
一級(jí)菜單及一級(jí)菜單下的前幾個(gè)子菜單順序需要一模一樣,在符合截圖的示例項(xiàng)后可以自己增加別的二級(jí)菜單項(xiàng)。
- Telegram Bot機(jī)器人
- 在NASTool設(shè)置中設(shè)置好本程序的外網(wǎng)訪問(wèn)地址,根據(jù)實(shí)際網(wǎng)絡(luò)情況決定是否打開Telegram Webhook開關(guān)。
注意:WebHook受Telegram限制,程序運(yùn)行端口需要設(shè)置為以下端口之一:443, 80, 88, 8443,且需要有以網(wǎng)認(rèn)證的Https證書。
- 在Telegram BotFather機(jī)器人中按下表維護(hù)好bot命令菜單(要選),選擇菜單或輸入命令運(yùn)行對(duì)應(yīng)服務(wù),輸入其它內(nèi)容則啟動(dòng)聚合檢索。
- Slack
- 詳情參考頻道說(shuō)明
命令與功能對(duì)應(yīng)關(guān)系
| 命令 | 功能 |
|---|---|
| /rss | RSS訂閱 |
| /ptt | 下載文件轉(zhuǎn)移 |
| /ptr | 刪種 |
| /pts | 站點(diǎn)簽到 |
| /rst | 目錄同步 |
| /db | 豆瓣想看 |
6、配置索引器
配置索引器,以支持搜索站點(diǎn)資源:
- 本工具內(nèi)建索引器目前已支持大部分主流PT站點(diǎn)及部分公開站點(diǎn),建議啟用內(nèi)建索引器。
- 同時(shí)支持Jackett/Prowlarr,需額外搭建對(duì)應(yīng)服務(wù)并獲取API Key以及地址等信息,配置到設(shè)置->索引器->Jackett/Prowlarr中。
7、配置站點(diǎn)
本工具的電影電視劇訂閱、資源搜索、站點(diǎn)數(shù)據(jù)統(tǒng)計(jì)、刷流、自動(dòng)簽到等功能均依賴于正確配置站點(diǎn)信息,需要在“站點(diǎn)管理->站點(diǎn)維護(hù)”中維護(hù)好站點(diǎn)RSS鏈接以及Cookie等。
其中站點(diǎn)RSS鏈接生成時(shí)請(qǐng)盡量選擇影視類資源分類,且勾選副標(biāo)題。
8、整理存量媒體資源
如果你的存量資源所在的目錄與你目錄同步中配置的源路徑目的路徑相同,則可以通過(guò)WEBUI或微信/Telegram的“目錄同步”按鈕觸發(fā)全量同步。
如果不相同則可以按以下說(shuō)明操作,手工輸入命令整理特定目錄下的媒體資源:
說(shuō)明:-d 參數(shù)為可選,如不輸入則會(huì)自動(dòng)區(qū)分電影/電視劇/動(dòng)漫分別存儲(chǔ)到對(duì)應(yīng)的媒體庫(kù)目錄中;-d 參數(shù)有輸入時(shí)則不管類型,都往-d目錄中轉(zhuǎn)移。
- Docker版本,宿主機(jī)上運(yùn)行以下命令,nas-tools修改為你的docker名稱,修改源目錄和目的目錄參數(shù)。
docker exec -it nas-tools sh python3 -m pip install -r third_party.txt python3 /nas-tools/app/filetransfer.py -m link -s /from/path -d /to/path - 群暉套件版本,ssh到后臺(tái)運(yùn)行以下命令,同樣修改配置文件路徑以及源目錄、目的目錄參數(shù)。
/var/packages/py3k/target/usr/local/bin/python3 -m pip install -r /var/packages/nastool/target/third_party.txt export NASTOOL_CONFIG=/var/packages/nastool/target/config/config.yaml /var/packages/py3k/target/usr/local/bin/python3 /var/packages/nastool/target/app/filetransfer.py -m link -s /from/path -d /to/path - 本地直接運(yùn)行的,cd 到程序根目錄,執(zhí)行以下命令,修改配置文件、源目錄和目的目錄參數(shù)。
python3 -m pip install -r third_party.txt export NASTOOL_CONFIG=config/config.yaml python3 app/filetransfer.py -m link -s /from/path -d /to/path
鳴謝
- 程序UI模板及圖標(biāo)來(lái)源于開源項(xiàng)目tabler,此外項(xiàng)目中還使用到了開源模塊:anitopy、tmdbv3api、python-plexapi、qbittorrent-api、transmission-rpc等
- 感謝 nevinee 完善docker構(gòu)建
- 感謝 tbc0309 適配群暉套件
- 感謝 PR 代碼、完善WIKI、發(fā)布教程的所有大佬
