寻找终端下载管理器

寻找终端下载管理器

我正在寻找在 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 特定的命令行工具。

相关内容