ターミナルダウンロードマネージャーを探しています

ターミナルダウンロードマネージャーを探しています

CLI (ターミナル) で実行されるダウンロード マネージャーを探しています。

ツールは次の目的を解決する必要があります。

  1. YouTube URL のリストを入力として取得するか、ファイルから URL リストを取得します。

  2. ネットワーク接続が中断された場合は、ダウンロードを一時停止して再開する必要があります。

  3. ターミナルで実行する必要があります。私はこれをヘッドレス メディア サーバーで実行しています。

現在、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-dlpython パッケージは、などの通常のパッケージ マネージャー経由でインストールできますapt
  • /tmp/ytファイルには URL のリストが 1 行ずつ含まれています。
  • -iURL 無効エラーが発生した場合、ファイル内の次の URL を選択し続けることを意味します (ただし、ソケット エラーは発生せず、ping"失敗してネットワークが起動するまで待機" ループに入ります)。
  • -c部分的にダウンロードされたファイルの再開を強制することを意味します。再開が機能するには、ファイル名の形式が一貫している必要があります(つまり、youtube-dl次回に形式を変更しても再開が機能すると期待できません)。私は個人的に-o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'形式を使用しています
  • 個人的には、--no-mtimeファイルが「タッチ」されていることを確認するためにも追加します (ビデオの更新時間ではなくダウンロード時間でファイルを並べ替えてリストする場合に便利です)。

答え2

任意のコマンドラインウェブクライアントは役に立つはずです。POSIXシステムでは、GNU wgetまたはカール(そして、プロトコルがFTP、など数多くのFTPコマンドラインクライアントの1つNCFTP の)。

HTTPクライアントライブラリを使って自分でコードを書くこともできます。libcurl(そして、Python、Guile、Perlなどの多くのスクリプト言語には、多数のHTTPクライアント機能があります)。ウェブそしてそのクッキー

Linux の場合、YouTube 専用のコマンドライン ツールがいくつか見つかります。

関連情報