実際、以前にも emby + google drive に関する記事を書いたことがありますが、時が経つにつれて状況が変わりました。
Google drive は教育用ドライブとチームドライブをほぼ廃止し、TOS もますます厳しくなり、転送がますます面倒になっています。
OneDrive には転送機能がまったくなく、ローカルアップロードのみです。
そんな中、阿里云盤が急成長し、国内での最適化やコミュニティの活発化(多くの telegram 共有チャンネルがあることを指します)に加え、阿里云盤が 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
阿里云盤のモバイルクライアントで QR コードをスキャンしてログインすることでリフレッシュトークンを取得できます。
注意事項
WebDAV ポリシーはローカルを選択してください。webdav はリダイレクトをサポートしていません。
設定されていないか、設定が間違っている場合、emby はスクレイピングできますが、リポジトリに入るとずっと回り続けます。
関連する Issues
- rclone が alist の webdav をマウントして阿里云盤 Open マウントのファイルを読み取る際に I/O エラー (403 Forbidden) が発生する
- v3 で阿里云 webdav に大量の 403 が発生する
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 のハードウェアデコードを設定します。もし内蔵グラフィックがない場合や必要ない場合は削除できます。
注意事項
サーバーの構成が低い場合、内蔵グラフィックがない場合は、トランスコード機能をオフにすることをお勧めします。
設定に入って、ユーザー→設定に移動し、下の 3 つのオプションをオフにします。
その他の説明#
cloudDrive2#
実際、最初に使用していたのは cloudDrive2 で阿里云をマウントしていたため、簡単でした。
結局、再インストールを選びましたが、理由はいくつかあります。
- クローズドソース これは完全にクローズドソースです。
- 安全性 2 回インストールしましたが、毎回ウェブサイトに入ると Google に詐欺とマークされました。
- パフォーマンス 同様にダイレクトリンクをサポートせず、ローカルダウンロードからストリーミングする方法を取っています。
- 安定性 マウントが切れることがあります。
誤報なのかどうかはわかりませんが、クローズドソースには注意が必要です。
また、ローカルで構築されたプログラムのアカウントがクラウドで同期される理由が理解できません😅、登録が必要です。。。
阿里云盤のダイレクトリンク#
現在、ローカル webdavポリシーは互換性が最も良い方法で、emby で動画を視聴する際、最初に webdav からローカルにダウンロードし、その後 emby にストリーミングされるため、サーバーのトラフィックを使用しています。
302 リダイレクトを使用すると、阿里云盤のダイレクトリンクを取得できますが、emby でスクレイピングすることはできません。
もし視聴の便宜のためだけに使用するのであれば、302 リダイレクトモードを使用し、nplayer で webdav をマウントすることで、阿里云の公式トラフィックを使用でき、4K でもカクつきません。
もし emby でダイレクトリンクを使用したい場合も可能ですが、nginx の設定を変更する必要があります。
以下の 2 つの記事を参照できます。
私が使用しているのは宝塔の nginx ですが、nginx の依存関係がないため、PCRE と njs モジュールを再コンパイルしても、実際には PCRE の UTF モジュールを再コンパイルし、このバージョンの PCRE を使用するように nginx を指定しました🙃、しかしそれでも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 で共通のプラグインです。