Ищу менеджер загрузок для терминала

Ищу менеджер загрузок для терминала

Я ищу менеджер загрузок, работающий в CLI (терминале).

Инструмент должен решать следующую задачу.

  1. Принять список URL-адресов YouTube в качестве входных данных / взять список 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-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чтобы убедиться, что файл «касается» (полезно, если я хочу отсортировать список файлов по времени загрузки, а не по времени обновления видео).

решение2

Любая командная строкаHTTPклиент должен быть полезен. В системах POSIX рассмотритеGNU-wget-программаилизавиток(и, если протоколФТП, один из многочисленных FTP-клиентов командной строки, таких какncftp).

Вы также можете написать что-то самостоятельно, используя какую-нибудь клиентскую HTTP-библиотеку, напримерlibcurl(и многие языки сценариев, например, Python, Guile, Perl и т. д., имеют многочисленные возможности HTTP-клиента). Обязательно узнайте немного больше оHTTPИ егопеченье.

Вы можете найти (для Linux) некоторые специфичные для YouTube инструменты командной строки.

Связанный контент