![寻找终端下载管理器](https://linux22.com/image/122745/%E5%AF%BB%E6%89%BE%E7%BB%88%E7%AB%AF%E4%B8%8B%E8%BD%BD%E7%AE%A1%E7%90%86%E5%99%A8.png)
我正在寻找在 CLI(终端)中运行的下载管理器。
工具应解决以下目的。
将 YouTube URL 列表作为输入/从文件中获取 URL 列表。
当网络连接中断时应暂停和恢复下载。
应该在终端中运行。我在无头媒体服务器上运行它。
我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-dl
python 包可以通过普通包管理器(例如apt
./tmp/yt
文件包含逐行的 url 列表。-i
表示如果遇到 url 无效错误,则继续选择文件中的下一个 url(但不是套接字错误,这将进入ping
“失败并等待网络启动”循环)-c
表示强制恢复部分下载的文件。文件名应该具有一致的格式以便恢复正常工作(即您youtube-dl
下次不能更改格式并期望恢复正常工作)。我个人使用的-o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'
格式- 我个人还添加了
--no-mtime
确保文件“触摸”的功能(如果我想按下载时间而不是视频更新时间列出文件排序,则很有用)。