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

注意事項
サーバーの構成が低い場合、内蔵グラフィックがない場合は、トランスコード機能をオフにすることをお勧めします。
設定に入って、ユーザー→設定に移動し、下の 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 で共通のプラグインです。

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