qinfengge

qinfengge

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

AlistとEMBYを使用して低コストの個人映像ライブラリを構築する

実際、以前にも 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

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 のハードウェアデコードを設定します。もし内蔵 GPU がない場合や必要ない場合は削除できます。

注意事項
サーバーの構成が低い場合、内蔵 GPU がない場合は、トランスコード機能をオフにすることをお勧めします。
設定に入って、ユーザーを選択し、下の 3 つのオプションをオフにします。

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 モジュールを再コンパイルし、このバージョンの PCRE を使用するように nginx を指定しました🙃が、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 で共通のプラグインです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。