実際、以前にも 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 のハードウェアデコードを設定します。もし内蔵 GPU がない場合や必要ない場合は削除できます。
注意事項
サーバーの構成が低い場合、内蔵 GPU がない場合は、トランスコード機能をオフにすることをお勧めします。
設定に入って、ユーザーを選択し、下の 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 で共通のプラグインです。