
CLI (ターミナル) で実行されるダウンロード マネージャーを探しています。
ツールは次の目的を解決する必要があります。
YouTube URL のリストを入力として取得するか、ファイルから URL リストを取得します。
ネットワーク接続が中断された場合は、ダウンロードを一時停止して再開する必要があります。
ターミナルで実行する必要があります。私はこれをヘッドレス メディア サーバーで実行しています。
現在、Node.js スクリプトを使用していますyoutube-dl
。ただし、このスクリプトには接続監視、ダウンロード整合性チェック、ダウンロード再開機能がありません。
Extreme Download Manager を試してみましたが、ヘッドレスでは実行できませんでした。
これを達成するためのあらゆるインプットを歓迎します。
答え1
2 つの while
ループインでbash
十分です:
while ! youtube-dl --batch-file /tmp/yt -i -c --socket-timeout 5; do while ! ping -c 1 -W 1 google.com; do echo "Network interface may down, please check your network"; sleep 10; done; echo "Network up but got url failed before, re-loop file after 5 seconds."; sleep 5; done
説明:
youtube-dl
python パッケージは、などの通常のパッケージ マネージャー経由でインストールできますapt
。/tmp/yt
ファイルには URL のリストが 1 行ずつ含まれています。-i
URL 無効エラーが発生した場合、ファイル内の次の URL を選択し続けることを意味します (ただし、ソケット エラーは発生せず、ping
"失敗してネットワークが起動するまで待機" ループに入ります)。-c
部分的にダウンロードされたファイルの再開を強制することを意味します。再開が機能するには、ファイル名の形式が一貫している必要があります(つまり、youtube-dl
次回に形式を変更しても再開が機能すると期待できません)。私は個人的に-o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'
形式を使用しています- 個人的には、
--no-mtime
ファイルが「タッチ」されていることを確認するためにも追加します (ビデオの更新時間ではなくダウンロード時間でファイルを並べ替えてリストする場合に便利です)。