qinfengge

qinfengge

醉后不知天在水,满船清梦压星河
github
email
telegram

使用Alist和EMBY打造低成本個人影視庫

其實之前也寫過 emby + google drive 的文章,但是時過境遷。
Google drive 把教育盤和團隊盤都幾乎揚完了,TOS 也越來越嚴格,轉存越來越麻煩。
OneDrive 則根本沒有轉存這一功能,只能本地上傳。

直到阿里雲盤異軍突起,國內優化,社區活躍(指有很多 telegram 分享頻道),再加上阿里雲盤 OPEN 開放了 API,幾乎完美。

話不多說,這篇博客將指引你使用 Alist 添加阿里雲盤,rclone 掛載 webdav 並使用 emby 刮削阿里雲盤裡面的資源。

安裝 Alist 及配置阿里雲盤#

官方文檔已經很詳細了
推薦使用 docker 安裝

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest  

安裝完成後使用下面的命令查看管理員帳號密碼

docker exec -it alist ./alist admin  

訪問 ip:5244並使用管理員帳號及密碼登錄

配置阿里雲盤的官方文檔也很詳細
主要是驅動選擇阿里雲盤 OPEN,然後配置下刷新令牌
前往:https://alist.nn.ci/tool/aliyundrive/request
使用阿里雲盤手機客戶端掃碼登錄可獲取刷新令牌

注意事項
WebDAV 策略 請選擇本地,webdav 不支持重定向
如果未設置或設置錯誤,emby 可以刮削,但進入資源庫會一直轉圈
相關 Issues

image

Rclone 掛載 webdav#

sudo -v ; curl https://rclone.org/install.sh | sudo bash  

安裝完成後,使用 rclone config 新建配置
選擇 webdav 並按要求配置即可
你可以查看下面的文章進行配置
群晖 / Linux 掛載阿里雲盤實現 Emby 播放,打造屬於自己的家庭影院!

image

配置完成後使用下面的命令將其掛載到本地

rclone mount alist: /home/webdav --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/home/cache --header "Referer:" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 10G --daemon  
  • alist: /home/webdav alist 是 rclone 配置的名稱,/home/webdav 是掛載的本地路徑
  • --dir-cache-time 4h 緩存時間,表示每 4 小時刷新緩存,如不經常改動雲盤文件,此值可以設置為 24h
  • --cache-dir=/home/cache 表示緩存路徑
  • --header "Referer:" Issues 中有提到此為掛載阿里雲盤的必須參數,但不加好像也行

如果 rclone mount 掛載出錯

Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found  

安裝 fuse

apt-get install fuse  

使用 df -h 可查看是否掛載成功

取消掛載,LocalFolder 表示本地掛載路徑

fusermount -qzu LocalFolder  

開機掛載

#將後面修改成你上面手動運行命令中,除了rclone的全部參數  
command="mount alist: /home/webdav --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/home/cache --header "Referer:" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 10G --daemon"  
#以下是一整條命令,一起複製到SSH客戶端運行  
cat > /etc/systemd/system/rclone.service <<EOF  
[Unit]  
Description=Rclone  
After=network-online.target  

[Service]  
Type=simple  
ExecStart=$(command -v rclone) ${command}  
Restart=on-abort  
User=root  

[Install]  
WantedBy=default.target  
EOF  

開始啟動:

systemctl start rclone  

設置開機自啟:

systemctl enable rclone  

其他命令:

重啟:systemctl restart rclone  
停止:systemctl stop rclone  
狀態:systemctl status rclone  

emby 安裝及配置#

下方為 emby 開心版 docker 鏡像,仅作演示,如有能力請支持正版。

docker run \  
	--name EmbyServer \  
	--net=host  \  
	-v /docker/emby:/config \  
	-v /aliyun:/aliyun \  
	-e TZ="Asia/Shanghai" \  
	--device /dev/dri:/dev/dri \  
	-e UID=0 \  
	-e GID=0 \  
	-e GIDLIST=0 \  
	--restart always \  
	-d lovechen/embyserver:latest  

若是需要配置正版,只需要把最後一行的 lovechen 改為 emby 即可配置 Emby 官方 Docker  
若是軟路由沒有開啟科學上網模式,那麼需要在 Docker 環境參數裡面加上  
HTTP_PROXY=http://代理IP:代理端口  
HTTPS_PROXY=http://代理IP:代理端口  
(這樣搜刮器才能正常的進行工作,因為大部分搜刮器已被牆)  
  • -v /docker/emby:/config 配置文件的映射,前面為宿主機路徑
  • -v /aliyun:/aliyun 資源庫路徑映射,此處應為 webdav 掛載的路徑
  • --device /dev/dri:/dev/dri 配置 Emby 的硬件解碼,若沒有核顯,或是不需要,可以刪除

注意事項
如果你的伺服器配置較低,沒有核顯,建議關閉轉碼功能
進入 設置 --> 用戶 --> 配置 關閉下面三個選項

image

其他說明#

cloudDrive2#

其實最開始用的是 cloudDrive2 掛載的阿里雲,因為簡單。
最後還是放棄重裝了,原因也很多

  1. 閉源 這玩意是純閉源的
  2. 安全性 裝了 2 次,每次都是一進網頁就被 Google 標欺詐
  3. 性能 同樣不支持直鏈,走的也是本地下載再串流的路數
  4. 穩定性 有掉掛載的情況

image
我不知道是誤報還是怎麼回事,但閉源還是小心點。
另外就是我不明白一個本地搭建的程序,帳號竟然是雲端同步的😅,要註冊的。。。

阿里雲盤直鏈#

目前本地 webdav策略為兼容性最好的方式,在 emby 中觀看視頻時,是先從 webdav 下載到本地再推流到 emby 播放的,所以走的是伺服器的流量
302 重定向能夠獲取到阿里雲盤的直鏈,但是無法使用 emby 進行刮削。

如果你只是為了方便觀看,可以使用 302 重定向模式,然後用 nplayer 掛載 webdav,這樣走的就是阿里雲官方的流量了,4K 不卡。

如果你一定要用 emby 走直鏈,也可以,需要修改 nginx 配置
可以查看下面 2 篇文章

因為我使用的是寶塔的 nginx,沒有 nginx 的依賴,即使我重新編譯 PCRE 和 njs 模塊,事實上我已經重新編譯了 PCRE 的 UTF 模塊,並指定 nginx 編譯時使用此版本的 PCRE🙃,但它還是報錯沒有 UTF Support

頁面美化#

image
這個樣式我覺得比 emby 默認的顯示要好的多,實現基於Emby Crx
提供了 2 種方式,一種是 chrome 擴展,客戶端本地美化,適合用別人 emby 伺服器的。另一種是服務端美化,針對自己建的 emby

# EmbyServer 為容器名, 如果你的容器名不是這個 請改成正確的!  
docker exec EmbyServer /bin/sh -c 'cd /system/dashboard-ui && wget -O - https://tinyurl.com/2p97xcpd | sh'  

小姐姐😍#

如果你想刮削某些小日子出品的電影,可以使用MetaTube,Jellyfin 和 EMBY 通用的插件

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。