其實之前也寫過 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
Rclone 掛載 webdav#
sudo -v ; curl https://rclone.org/install.sh | sudo bash
安裝完成後,使用 rclone config
新建配置
選擇 webdav 並按要求配置即可
你可以查看下面的文章進行配置
群晖 / Linux 掛載阿里雲盤實現 Emby 播放,打造屬於自己的家庭影院!
配置完成後使用下面的命令將其掛載到本地
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 的硬件解碼,若沒有核顯,或是不需要,可以刪除
注意事項
如果你的伺服器配置較低,沒有核顯,建議關閉轉碼功能
進入 設置 --> 用戶 --> 配置 關閉下面三個選項
其他說明#
cloudDrive2#
其實最開始用的是 cloudDrive2 掛載的阿里雲,因為簡單。
最後還是放棄重裝了,原因也很多
- 閉源 這玩意是純閉源的
- 安全性 裝了 2 次,每次都是一進網頁就被 Google 標欺詐
- 性能 同樣不支持直鏈,走的也是本地下載再串流的路數
- 穩定性 有掉掛載的情況
我不知道是誤報還是怎麼回事,但閉源還是小心點。
另外就是我不明白一個本地搭建的程序,帳號竟然是雲端同步的😅,要註冊的。。。
阿里雲盤直鏈#
目前本地 webdav策略為兼容性最好的方式,在 emby 中觀看視頻時,是先從 webdav 下載到本地再推流到 emby 播放的,所以走的是伺服器的流量。
302 重定向能夠獲取到阿里雲盤的直鏈,但是無法使用 emby 進行刮削。
如果你只是為了方便觀看,可以使用 302 重定向模式,然後用 nplayer 掛載 webdav,這樣走的就是阿里雲官方的流量了,4K 不卡。
如果你一定要用 emby 走直鏈,也可以,需要修改 nginx 配置
可以查看下面 2 篇文章
因為我使用的是寶塔的 nginx,沒有 nginx 的依賴,即使我重新編譯 PCRE 和 njs 模塊,事實上我已經重新編譯了 PCRE 的 UTF 模塊,並指定 nginx 編譯時使用此版本的 PCRE🙃,但它還是報錯沒有 UTF Support
。
頁面美化#
這個樣式我覺得比 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 通用的插件