尋找終端下載管理器

尋找終端下載管理器

我正在尋找在 CLI(終端)中運行的下載管理器。

工具應解決以下目的。

  1. 將 YouTube URL 清單作為輸入/從文件中取得 URL 清單。

  2. 當網路連線中斷時應暫停和恢復下載。

  3. 應該在終端機中運作。我在無頭媒體伺服器上運行它。

youtube-dl現在使用的是nodejs腳本。但該腳本缺乏連線監控和下載完整性檢查、下載復原功能。

我嘗試了 Extreme Download manager,但它無法無頭運行。

任何用於實現相同目標的投入都將受到讚賞。

答案1

兩個 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 清單。
  • -i表示如果遇到 url 無效錯誤,則繼續選擇檔案中的下一個 url(但不是套接字錯誤,這將進入ping「失敗並等待網路啟動」循環)
  • -c表示強制恢復部分下載的檔案。檔案名稱應該具有一致的格式以便恢復正常工作(即您youtube-dl下次不能更改格式並期望恢復正常工作)。我個人使用的-o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'格式
  • 我個人還添加了--no-mtime確保文件“觸摸”的功能(如果我想按下載時間而不是視頻更新時間列出文件排序,則很有用)。

答案2

任何命令列HTTP協定客戶端應該有用。在 POSIX 系統上,考慮GNU wget或者捲曲(並且,如果協議是文件傳輸協定,眾多 FTP 命令列客戶端之一,例如網路檔案傳輸協定)。

您也可以使用一些 HTTP 用戶端程式庫自己編寫一些程式碼,例如庫捲曲(許多腳本語言,例如Python、Guile、Perl 等...都有大量的HTTP 用戶端工具)。一定要多了解一點HTTP協定和它的餅乾

您可以找到(對於 Linux)一些 YouTube 特定的命令列工具。

相關內容