この半年間、私は次元図書館でアニメを追いかけていましたが、最近彼女に問題が発生し、アニメが更新されなくなったため、自分でこの追跡ツール小祥の小窝を作ることにしました。
小窝を構築していた数日間は本当に手探りで混乱していましたが、問題が少しずつ解決していくと本当に嬉しかったです。この喜びがこの小さな文章を通じて伝わればいいなと思っています。実際、自分もこのプロセスを楽しんでいました。
この小窝の材料は:
- 月額 3 ドルの 1 コア 1G、ハードディスク 10G、月間トラフィック 500G、帯域幅 50Mbps のサーバーで、宝塔パネルがインストールされています。
- porkbun で購入した.top ドメイン、初年度 1.6 ドル、更新料 4.9 ドル。
- 勇敢な心。
この小窝の構造は:
- Rclone を使用して Onedrive をマウントし、アニメを保存。
- qBittorrent が RSS を通じてアニメを自動ダウンロード。
- qBittorrent のダウンロード完了後に自動的に Onedrive にアップロードするように設定。
- 最後に AList を使用して Onedrive を Web 上で表示。
この小窝の構築プロセスは:
Microsoft E5 アカウントを取得し、Onedrive を設定#
参考
Microsoft の E5 開発者アカウントを使用すると、Onedrive のストレージスペース 5T*26(主アカウントと 25 のサブアカウントそれぞれに 5T)が無料で利用できます。
E5 開発者アカウントの申請#
公式サイトにアクセスし、join now をクリックして申請します https://developer.microsoft.com/en-us/microsoft-365/dev-program 、ガイドに従って進めば大丈夫です。
申請が完了すると、この画面にリダイレクトされます。
ここで、先ほど申請した開発者アカウントの主アカウントが表示されます。「ユーザー名 @ドメイン.onmicrosoft.com」
サブアカウントと Onedrive の設定#
(実際には主アカウントを直接使用することもできますが、新しいサブアカウントを作成する方が良いと感じます)
現在、Microsoft 365 管理センターのユーザー管理ページにアクセスします
https://admin.microsoft.com/#/users
「Add a user」をクリックしてサブアカウントを追加します。
次に、この「Assign product licenses」の部分はどう記入すればいいのか分かりませんが、実際には私のサブアカウントは自動的に作成されており、こう記入されていました。
その後、次へ進んで追加を完了します。
サブアカウントを追加した後、サブアカウントをクリックし、ポップアップのアカウント管理ページで OneDrive をクリックし、Storage used を見つけて Edit をクリックすると、ストレージを 5T に設定できます。ユーザー作成時のデフォルトストレージは 1T で、Manage default storage をクリックして変更することもできます。
今、サブアカウントで Onedrive にログインすると、5T のストレージが表示されます。
E5 の更新問題について#
E5 開発者アカウントの初回サブスクリプションでは 90 日のサブスクリプション期間が付与され、更新には厳密な条件はありません。重要なのは、Microsoft のアルゴリズムが私たちが開発活動を行っていると見なすかどうかです。
その後使用する rclone と alist は、毎日アニメをアップロードダウンロードするために自分が作成したアプリの API を呼び出す必要があるため、自動更新の成功率はかなり高いはずです。
自動更新が失敗した場合でも、30 日間のデータ保持期間があり、別の E5 アカウントを申請してデータを移行することができます。また、私に連絡して保存を手伝ってもらうこともできます()。自動更新が失敗してから 60 日後には再度 E5 アカウントを申請できるようです。
Microsoft Authenticator の認証を無効にする#
アカウント作成後、ログイン時にこの画面が表示されることがあります。
Office365 強制 Microsoft Authenticator 验证登录如何关闭_office365 双重验证_高远科技 - Project 软件服务的博客 - CSDN 博客
上記を参考にしてください。ただし、設定画面は変更されている可能性があるため、再度探ってみました。
Microsoft 365 admin centerのメニューで「Show all」をクリックし、Identityを見つけます。
クリックするとMicrosoft Entra 管理センターに入ります。
「アイデンティティ - 概要 - 属性」を見つけ、ページの最後で「管理セキュリティの既定」をクリックして無効に設定します。
この時点で再度ログインすると、Microsoft Authenticator の認証が表示されなくなります。
Rclone で Onedrive をマウント#
参考
Linux 上使用 Rclone 挂载 OneDrive 或 GoogleDrive 并设置开机自启 - 知乎 PDF
Rclone に付属の API(ID とキーは空白のままでも可)を使用することも、自分で API を作成してマウントすることもできます。自作 API の方が E5 の更新に役立つと思います。
Windows コンピュータに Rclone をダウンロードしてトークンを取得します。ダウンロードリンクはhttps://rclone.org/downloads/ です。
Linux に Rclone をインストールするには:curl https://rclone.org/install.sh | bash
自作プライベート API#
自作プライベート API では、クライアント ID:client_idとクライアントシークレット:client_secretを取得する必要があります。
https://portal.azure.com/#home にログインし、主アカウントとサブアカウントを区別し、どのアカウントの Onedrive をマウントするかを決めてください。
アプリ登録を検索し、サービス - アプリ登録をクリックして新規登録をクリックします。
名前は rclone(適当に設定)と入力します。
サポートされるアカウントの種類:任意の組織ディレクトリ (...) 内のアカウントと個人の Microsoft アカウント (...) を選択します。
リダイレクト URI:Web http://localhost
登録が完了すると、アプリケーション(クライアント)ID(client_id)が得られます。
次に「証明書とパスワード」を選択し、「新しいクライアントパスワード」をクリックします。説明は適当に書いても構いません。最も長い期間を選択し、「追加」をクリックします。
その後、クライアントパスワード client_secret を取得します。
(注:client_secret は「値」であり、「機密 ID」ではありません。追加後にパスワードが消えるため、早めに記録してください。)
API 権限の設定
API権限
をクリックし、「Microsoft Graph」をクリックして、Files.Read
、Files.ReadWrite
、Files.Read.All
、Files.ReadWrite.All
、offline_access
、User.Read
の権限を追加します(検索して追加できます)。
権限を更新した後、再度権限を確認します。
Rclone を使用して自作 API で Onedrive をマウント#
トークンの取得
ローカルコンピュータに rclone をダウンロードします。Windows の例として、解凍してrclone.exe
があるフォルダに移動し、エクスプローラーのアドレスバーにcmd
と入力して Enter を押すと、現在のパスでコマンドプロンプトが開きます。
前のステップで取得したクライアント ID:client_idとクライアントシークレット:client_secretを使用して、以下のコマンドのClient_ID、Client_secretを置き換えて実行します。
rclone authorize "onedrive" "Client_ID" "Client_secret"
ブラウザに表示される Microsoft のログインウィンドウにログインして承認すると(ログインするアカウントを間違えないように注意)、コマンドプロンプトウィンドウにトークンが表示されるので、コピーして保存します。
Rclone 接続設定
Linux でrclone config
コマンドを入力し、指示に従って設定します。
(TIPS: RCLONE は時々更新されるため、この記事を読んでいる時点でメニューオプションがわずかに変更されている可能性がありますが、基本的な考え方は変わりません。無思考で操作を真似しないでください。)
[root@xxxxxxx ~]# rclone config
2023/11/10 11:51:37 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n #ここでnを入力して接続を作成
Enter name for new remote.
name> onedrive #名前を入力します。ここではonedrive(自由に記入可)
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon Drive
\ (amazon cloud drive)
....
31 / Microsoft OneDrive
\ (onedrive)
....
Storage> 31 #31を選択、Microsoft OneDriveを選択します。注意:このシーケンス番号は随時変わるので、よく確認してから入力してください。
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> xxxx-xxx #!!!自作APIのクライアントID:client_idを入力します。
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> xxxx-xxx #!!!自作APIのクライアントシークレット:client_secretを入力します。
Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
1 / Microsoft Cloud Global
\ (global)
2 / Microsoft Cloud for US Government
\ (us)
3 / Microsoft Cloud Germany
\ (de)
4 / Azure and Office 365 operated by Vnet Group in China
\ (cn)
region> 1 #そのままEnterを押すか1を入力します。
Edit advanced config?
y) Yes
n) No (default)
y/n> n #そのままEnterを押すかnを入力します。
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> n #nを入力します。
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "onedrive"
Then paste the result.
Enter a value.
config_token> #先ほど取得したトークンを入力します。
Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).
1 / OneDrive Personal or Business
\ (onedrive)
2 / Root Sharepoint site
\ (sharepoint)
/ Sharepoint site name or URL
3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
\ (url)
4 / Search for a Sharepoint site
\ (search)
5 / Type in driveID (advanced)
\ (driveid)
6 / Type in SiteID (advanced)
\ (siteid)
/ Sharepoint server-relative path (advanced)
7 | E.g. /teams/hr
\ (path)
config_type> 1 #1を入力してOneDriveを選択します。
Option config_driveid.
Select drive you want to use
Choose a number from below, or type in your own string value.
Press Enter for the default (xxxxxx).
1 / OneDrive (business)
\ (xxxxxx)
config_driveid> 1 #プロンプトに従って1を選択します。
Drive OK?
Found drive "root" of type "business"
URL: https://xxxx-my.sharepoint.com/personal/xxx_xxxx_onmicrosoft_com/Documents
y) Yes (default)
n) No
y/n> y #yを入力します。
Configuration complete.
Options:
- type: onedrive
- token: {"access_token":xxxxxxxxx}
- drive_id: xxxxxx
- drive_type: business
Keep this "onedrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y #yを入力します。
Current remotes:
Name Type
==== ====
onedrive onedrive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q #qを選択して終了します。
Onedrive をマウント
マウントディレクトリを作成し、個人の好みに応じて場所を選択します。私は /home/onedrive を選びました。
#新しいローカルフォルダを作成します。パスは自分で決めてください。以下のLocalFolder
mkdir /home/onedrive
#ディスクとしてマウントします。以下のDriveName、Folder、LocalFolderのパラメータは説明に従って置き換えてください。
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
#私のコマンドは
rclone mount onedrive:/ /home/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
DriveName
は初期設定で入力したname
、Folder
はOneDrive
内のフォルダ、LocalFolder
はVPS
上のローカルフォルダです。
マウント中にNOTICE: One drive root 'test': poll-interval is not supported by this remote
エラーが表示された場合は、無視しても構いません。
"fusermount3" を含むエラーが表示された場合は、fuse3 をインストールする必要があります:yum install fuse3
マウントコマンドを実行した後、新しいターミナルウィンドウでdf -h
コマンドを入力して確認します。
マウントが成功したことを確認したら、ctrl+c
で停止するか、マウントコマンドを実行しているウィンドウを閉じ、起動時の自動起動を設定します。
起動時の自動起動#
systemctl
コマンドを使用する Linux に適しています。
#以下を、上記の手動実行コマンドのrclone以外のすべてのパラメータに変更します。
command=" mount onedrive:/ /home/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000"
#以下は一つのコマンドです。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
再起動して、問題がなければ、rclone の Onedrive マウントが完了です。
qBittorrent-nox のインストールと設定#
参考
qBittorrent+Rclone 实现自动上传到 Onedrive,Google Drive 等储存,并自动删除本地文件 – 极客轩 PDF
yum でインストールした qb のバージョンが古すぎる(AutoBangumi が接続できず、長い間困っていました)、コンパイルインストールは面倒で大きなメモリが必要なようなので、実行可能な qb を使用します。これは上記の記事で言及されているものです。
Releases · userdocs/qbittorrent-nox-static
qbittorrent-nox のインストール#
#ダウンロード
wget "https://github.com/userdocs/qbittorrent-nox-static/releases/download/release-4.6.0_v2.0.9/x86_64-qbittorrent-nox"
#プログラムディレクトリに移動し、qbittorrent-noxに名前を変更
mv ./x86_64-qbittorrent-nox /usr/bin/qbittorrent-nox
#実行権限を付与
chmod a+x /usr/bin/qbittorrent-nox
qb の初期化
完了後、qbittorrent-nox
コマンドを実行し、y
と入力して Enter を押して利用規約を確認します。http://サーバーのパブリックIPアドレス:8080
にアクセスして qb を制御します。8080 ポートを開放する必要があります。
Web UI の初期ユーザー名はadmin
、初期パスワードはadminadmin
です。ログイン後、すぐに新しいユーザー名とパスワードを設定して保存します。
すべてが正常であれば、ターミナルでCtrl + C
を押して qb を停止し、起動時の自動起動を設定します。
起動時の自動起動を設定
cat > /etc/systemd/system/qbittorrent.service << EOF
[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
LimitNOFILE=512000
User=root
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target
EOF
起動:systemctl start qbittorrent
起動時の自動起動を設定: systemctl enable qbittorrent
これで qBittorrent-nox のインストールはほぼ完了です。以下は自分の状況に応じた設定です。
qBittorrent-nox の設定
qb のリスニングポートを開放します。
ダウンロード - すべてのファイルにディスクスペースを事前に割り当てて、ダウンロードスペースが不足しないようにします。
速度 - グローバル速度制限を設定し、ダウンロード速度を制限して、後で設定する Onedrive への自動アップロードに追いつけるようにします。
BitTorrent - トレントのキューを設定し、最大アクティブダウンロード数を 1 に設定します。
BTTracker:https://github.com/XIU2/TrackersListCollection/blob/master/README-ZH.md
ダウンロード完了後の自動アップロード#
自動アップロードスクリプトの準備
自動アップロードスクリプト:qBittorrent+Rclone 实现自动上传到 Onedrive,Google Drive 等储存,并自动删除本地文件 – 极客轩
アニメを適切なディレクトリに保存するために、少し修正を加えました:qb_auto.sh
スクリプトの設定を自分の情報に合わせて修正し、スクリプトをサーバーにアップロードしました。私は/root/qbauto/qb_auto.sh
に保存しました。
スクリプトに実行権限を付与します chmod a+x /root/qbauto/qb_auto.sh
#!/bin/bash
torrent_name=$1
content_dir=$2
root_dir=$3
save_dir=$4
files_num=$5
torrent_size=$6
file_hash=$7
qb_version="4.6.0" # 自分のqbitバージョンに変更
qb_username="xxxxxx" # qbitユーザー名
qb_password="xxxxxxxxx" # qbitパスワード
qb_web_url="http://localhost:8080" # qbit webuiアドレス
leeching_mode="true" # 吸血モード、trueはダウンロード完了後にローカルのトレントとファイルを自動削除
log_dir="/root/qbauto" # ログ出力ディレクトリ
rclone_dest="onedrive" # rclone設定のストレージ名
rclone_parallel="32" # qbitアップロードスレッド、デフォルトは4
auto_del_flag="rclone" # アップロード済みのトレントを識別するためのタグまたはカテゴリを追加 v4.0.4+バージョンでは「rclone」タグを追加、低バージョンでは「rclone」カテゴリを追加して識別
# 上記のパラメータを変更すれば良いです。
# 2023-11-15, Sakikoによる追加
# クラウドの保存パス、ホスト上のダウンロードパスからクラウドの保存パスを抽出
# 例えばダウンロードパスが/root/Downloads/Sakiko/Bangumi/xxxの場合、/Sakiko/Bangumi/xxxを抽出し、クラウドにこのパスで保存します。
# 自分のダウンロードパスに応じて「/root/Downloads」を変更してください。
rclone_dest_save_dir=${save_dir#*/root/Downloads}
if [ ! -d ${log_dir} ]
then
mkdir -p ${log_dir}
fi
version=$(echo $qb_version | grep -P -o "([0-9]\.){2}[0-9]" | sed s/\\.//g)
function qb_login(){
if [ ${version} -gt 404 ]
then
qb_v="1"
cookie=$(curl -i --header "Referer: ${qb_web_url}" --data "username=${qb_username}&password=${qb_password}" "${qb_web_url}/api/v2/auth/login" | grep -P -o 'SID=\S{32}')
if [ -n ${cookie} ]
then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ログイン成功!cookie:${cookie}" >> ${log_dir}/autodel.log
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ログイン失敗!" >> ${log_dir}/autodel.log
fi
elif [[ ${version} -le 404 && ${version} -ge 320 ]]
then
qb_v="2"
cookie=$(curl -i --header "Referer: ${qb_web_url}" --data "username=${qb_username}&password=${qb_password}" "${qb_web_url}/login" | grep -P -o 'SID=\S{32}')
if [ -n ${cookie} ]
then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ログイン成功!cookie:${cookie}" >> ${log_dir}/autodel.log
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ログイン失敗" >> ${log_dir}/autodel.log
fi
elif [[ ${version} -ge 310 && ${version} -lt 320 ]]
then
qb_v="3"
echo "古いバージョンです。早急にアップグレードしてください。"
exit
else
qb_v="0"
exit
fi
}
function qb_del(){
if [ ${leeching_mode} == "true" ]
then
if [ ${qb_v} == "1" ]
then
curl -X POST -d "hashes=${file_hash}&deleteFiles=true" "${qb_web_url}/api/v2/torrents/delete" --cookie ${cookie}
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 削除成功!トレント名:${torrent_name}" >> ${log_dir}/qb.log
elif [ ${qb_v} == "2" ]
then
curl -X POST -d "hashes=${file_hash}&deleteFiles=true" "${qb_web_url}/api/v2/torrents/delete" --cookie ${cookie}
else
curl -X POST -d "hashes=${file_hash}&deleteFiles=true" "${qb_web_url}/api/v2/torrents/delete" --cookie ${cookie}
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 削除成功!トレントファイル:${torrent_name}" >> ${log_dir}/qb.log
echo "qb_v=${qb_v}" >> ${log_dir}/qb.log
fi
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] アップロード済みトレントを自動削除しません" >> ${log_dir}/qb.log
fi
}
# 2023-11-15, Sakikoによるコメント
# function rclone_copy(){
# if [ ${type} == "file" ]
# then
# rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}" ${rclone_dest}:/qbit/)
# elif [ ${type} == "dir" ]
# then
# rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}"/ ${rclone_dest}:/qbit/"${torrent_name}")
# fi
# }
# 2023-11-15, Sakikoによる追加
# rclone_copy関数を修正し、クラウドにアップロードする際にカスタマイズされた自動抽出後のダウンロードパスに保存します。
function rclone_copy(){
if [ ${type} == "file" ]
then
rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}" ${rclone_dest}:"${rclone_dest_save_dir}"/)
elif [ ${type} == "dir" ]
then
rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}"/ ${rclone_dest}:"${rclone_dest_save_dir}"/"${torrent_name}")
fi
}
function qb_add_auto_del_tags(){
if [ ${qb_v} == "1" ]
then
curl -X POST -d "hashes=${file_hash}&tags=${auto_del_flag}" "${qb_web_url}/api/v2/torrents/addTags" --cookie "${cookie}"
elif [ ${qb_v} == "2" ]
then
curl -X POST -d "hashes=${file_hash}&category=${auto_del_flag}" "${qb_web_url}/command/setCategory" --cookie ${cookie}
else
echo "qb_v=${qb_v}" >> ${log_dir}/qb.log
fi
}
if [ -f "${content_dir}" ]
then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] タイプ:ファイル" >> ${log_dir}/qb.log
type="file"
rclone_copy
qb_login
qb_add_auto_del_tags
qb_del
# rm -rf ${content_dir}
elif [ -d "${content_dir}" ]
then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] タイプ:ディレクトリ" >> ${log_dir}/qb.log
type="dir"
rclone_copy
qb_login
qb_add_auto_del_tags
qb_del
# rm -rf ${content_dir}
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 不明なタイプ、アップロードをキャンセル" >> ${log_dir}/qb.log
fi
echo "トレント名:${torrent_name}" >> ${log_dir}/qb.log
echo "コンテンツパス:${content_dir}" >> ${log_dir}/qb.log
echo "ルートディレクトリ:${root_dir}" >> ${log_dir}/qb.log
echo "保存パス:${save_dir}" >> ${log_dir}/qb.log
echo "ファイル数:${files_num}" >> ${log_dir}/qb.log
echo "ファイルサイズ:${torrent_size}Bytes" >> ${log_dir}/qb.log
echo "HASH:${file_hash}" >> ${log_dir}/qb.log
echo "Cookie:${cookie}" >> ${log_dir}/qb.log
echo -e "-------------------------------------------------------------\n" >> ${log_dir}/qb.log
qb の自動アップロード設定
qbit の設定に移動し、ダウンロードオプションでトレント完了時に外部プログラムを実行するオプションを見つけ、チェックを入れ、以下のコマンドを入力します。/root/qbauto/qb_auto.sh
は私のスクリプトのパスで、あなたのものに変更してください。最後に保存します。
bash /root/qbauto/qb_auto.sh "%N" "%F" "%R" "%D" "%C" "%Z" "%I"
これで自動アップロード機能が実現しました。マグネットリンクを試してみてください。
申し訳ないことに、ずっと吸血していて本当にごめんなさい。ハードディスクが本当に小さくて🥺、ハードディスクを追加すると毎月 1 ドル余分にかかります😢
RSS を通じてアニメをダウンロード#
実際、今は AutoBangumi を使ってダウンロードしています。しかし、作者が法律などの問題を心配しているとツイートしていたので、少し罪悪感を感じています。やはり控えめに使った方が良いでしょう。
AB は必須ではなく、qb にも RSS 購読機能がありますが、少し面倒です。
主に以下のアニメダウンロードサイトを使用しています:
一、蜜柑計画
ウェブサイトアドレス : https://mikanani.me/ https://mikanime.tv/
二、アニメ花園
ウェブサイトアドレス : https://share.dmhy.org/
蜜柑計画を通じてアニメをダウンロード
ホームページのリンクを通じて、または検索してアニメのページにアクセスし、好きな字幕グループを選択します(個人的には ANI が好きです)。
次に RSS アイコンをクリックし、遷移したページでアドレスをコピーします。
自分の qb を開き、右上の RSS をクリックし、新しい RSS 購読をクリックして、先ほどコピーしたリンクを入力して確定します。
RSS 購読が追加された後、右上の RSS ダウンローダーをクリックし、プラスボタンをクリックしてダウンロードルールを追加し、名前を付けます。
RSS 購読が追加された後、ルールを設定します。保存先ディレクトリを設定し、正しい購読元アプリケーションルールを選択します。
また、\d+-\d
を含まないように設定して、シリーズをダウンロードしないようにします(蜜柑の [ANI] は通常シリーズがありませんが、追加しておくと良いでしょう)。
保存をクリックすると、右側に一致するアニメが表示され、ダウンロードが開始されます。
ダウンロードが完了した後、自動アップロードスクリプトが設定した保存パスに基づいて Onedrive の/Sakiko/Bangumi/狩龍人ラグナ/Season 1
ディレクトリにアップロードされます。
RSS 購読源の更新間隔はデフォルトで 30 分です。オプション - RSS で設定できます。30 分ごとにアニメの更新をチェックしてダウンロードします。
簡繁フィルタリング
蜜柑には簡体字と繁体字の字幕グループがある場合があり、その場合は簡体字を含む必要があります。より複雑なフィルタリングには正規表現を使用できます。
アニメ花園のアニメダウンロード
アニメ花園では、検索を柔軟に使用してアニメをフィルタリングし、RSS を取得します。
AList を使用して Onedrive をマウントする#
Github Repo not found
The embedded github repo could not be found…
インストール#
公式のチュートリアルに従ってインストールします。私は Docker を使用してインストールしました。
公式チュートリアル:https://alist.nn.ci/zh/guide/install/docker.html
# docker-cli
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 random
# 手動でパスワードを設定、`NEW_PASSWORD`は設定したいパスワードを指します。
docker exec -it alist ./alist admin set NEW_PASSWORD
インストール後、http://サーバーのパブリックIPアドレス:5244
にアクセスして Alist にログインします。ユーザー名は admin、パスワードは先ほど設定したものです。
ログイン後、ページ下部の管理
をクリックして再度ユーザー名とパスワードを設定し、アイコンやタイトルも設定できます。
Onedrive をマウント#
公式チュートリアル:https://alist.nn.ci/zh/guide/drivers/onedrive.html
AList 管理ページでストレージを選択し、追加をクリックしてドライバーを Onedrive に選択すると、以下のページが表示されます。
これらのオプションの中で、主に取得する必要があるのはクライアント ID、クライアントシークレット、リフレッシュトークンです。
これらは上記の Rclone で Onedrive をマウントする際に取得したものと同じ性質のもので、上記のようにアプリを作成して取得する必要があります。
少し異なる点は、公式チュートリアルを確認することです https://alist.nn.ci/zh/guide/drivers/onedrive.html 、アプリ登録時のリダイレクト URL は https://alist.nn.ci/tool/onedrive/callback です。
アプリを登録した後、クライアント ID、クライアントシークレットを取得し、https://alist.nn.ci/tool/onedrive/request に記入するとリフレッシュトークンが得られます。
これでOnedrive の追加内容を記入できます。
ドライバー onedrive
マウントパス /onedrive #AListインターフェースの/onedriveディレクトリにマウント
シリアル番号 デフォルトは0
備考
キャッシュの有効期限 デフォルトは30
Webプロキシ デフォルトはオフ
WebDAVポリシー デフォルトは302リダイレクト
ダウンロードプロキシURL デフォルトは空
ソート デフォルトは空
ソート方法 デフォルトは空
抽出フォルダ デフォルトは空
署名を有効にする デフォルトはオフ
ルートフォルダパス / #OnedriveのルートパスをAListインターフェースの/onedriveディレクトリにマウント(上記で設定したマウントパス)
地域 グローバル
Sharepointかどうか いいえ
クライアントID 先ほど取得したものを記入
クライアントシークレット 先ほど取得したものを記入
リダイレクトUri https://alist.nn.ci/tool/onedrive/callback
リフレッシュトークン 先ほど取得したものを記入
サイトID デフォルトは空
分割サイズ デフォルトは5
追加をクリックして完了します。
今、ホームページにアクセスすると Onedrive フォルダが表示されます。
ゲスト設定#
現在、自分の AList はログイン後にしか表示できませんが、ゲストアカウントを設定することでログインせずに表示できるようにします。
AList 管理ページでユーザーを選択し、ゲストアカウントを有効にします。
基本パスを設定することで、指定したディレクトリをホームページにすることができます。現在、ゲストが見るディレクトリは Sakiko です。
以下の紹介については、Onedrive の / Sakiko ディレクトリに readme.md をアップロードすれば完了です。
今のところ、IP + ポート番号でアクセスしていますが、リバースプロキシを設定すればドメインでアクセスできるようになります。
リバースプロキシを設定してドメインをマッピング#
AList の公式チュートリアルを参照してください:https://alist.nn.ci/zh/guide/install/reverse-proxy.html
宝塔パネルを使用している場合は非常に簡単で、qbittorrent にも同様に設定できます。
最終的な効果はこのようになります。オンラインで視聴またはダウンロードでき、速度は比較的速いです。サーバーのトラフィックを経由せず、直接 Onedrive からダウンロードされるため(おそらく WebDAV ポリシー 302 リダイレクト?)、これは非常に良い点です。
その他#
qb がダウンロードしていないときに再起動#
私は宝塔パネルで毎週月曜日の午前中にサーバーを再起動するように設定していますが、qb にダウンロードタスクがあると問題が発生する可能性があります。
そのため、再起動スクリプト内でダウンロードディレクトリにファイルが残っているかどうかを判断し、ファイルがない場合はダウンロードタスクがないことを示し、再起動します。
#!/bin/bash
folder="/root/Downloads"
files=$(find "$folder" -type f)
echo "$(date +%Y-%m-%d)"
if [ -n "$files" ]; then
echo "ダウンロード中の疑い:"
echo "$files"
echo "再起動をキャンセル"
else
echo "状態正常、再起動を実行"
reboot
fi
Alist のページが遅い問題を解決#
Alist 管理バックエンド - 設定 - グローバルで、カスタムヘッダーコンテンツを阿里云 CDN に置き換えます Alist のページが遅い、読み込みが遅い問題を解決 - 哔哩哔哩
元のヘッダー:<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>
阿里云:<script src="https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>
後記#
ああ、ついに書き終えました。その中には多くのバカなところがあるかもしれませんが、皆さんに教えていただければ幸いです。
小窝のインスピレーションは、次元図書館の館長の私のアニメ追跡解決策から来ています。最初に見たときは少し衝撃を受けました。実際、この期間、私は Docker さえ知らなかったのですが、この小窝とこの小さな文章が私に多くのことを学ばせてくれました。xlog にドメインを設定し、MetaMask ウォレットを作成することができ、憧れに少し近づくことができました。