Procurando por um gerenciador de download de terminal

1

Estou procurando um gerenciador de downloads em execução na CLI (terminal).

A ferramenta deve resolver o seguinte objetivo.

  1. Obtenha uma lista de URLs do YouTube como entrada / lista de URLs de um arquivo.

  2. Deve-se pausar e retomar o download quando a conexão de rede for interrompida.

  3. Deve ser executado no terminal. Estou executando isso em um servidor de mídia sem cabeçalho.

Eu uso um script youtube-dl nodejs agora. Mas o script não possui monitoramento de conexão e verificação de integridade de download, recurso de download de currículo.

Eu tentei o gerenciador do Extreme Download e ele não funcionaria sem cabeça.

Quaisquer entradas para alcançar o mesmo são apreciadas.

    
por 55597 30.11.2017 / 14:52

2 respostas

2

Dois while loop em bash devem ser suficientes:

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

Explicação:

  • youtube-dl é o pacote python disponível para instalação via ordinária gerenciador de pacotes, como apt .
  • O arquivo /tmp/yt contém uma lista de URLs linha a linha.
  • -i significa continuar escolha a próxima url no arquivo se encontrar erro de url inválido (mas não o erro de soquete, que entrará no ciclo ping de "falha e espera pela rede para cima")
  • -c significa retomar a força dos arquivos baixados parcialmente. O nome do arquivo deve ter um formato consistente para que o currículo funcione (ou seja, não é possível alterar o formato youtube-dl da próxima vez e esperar que o currículo funcione). Eu pessoalmente uso -o './%(title)s-%(upload_date)s-%(id)s.%(ext)s' format
  • Eu também adiciono --no-mtime para garantir que o arquivo "toque" (útil se eu quiser listar a classificação do arquivo pelo tempo de download em vez do tempo de atualização do vídeo).
por 30.11.2017 / 19:21
1

Qualquer cliente de HTTP de linha de comando deve ser útil. Em sistemas POSIX, considere GNU wget ou curl (e, se o protocolo for FTP , um dos inúmeros clientes da linha de comando FTP, como ncftp ).

Você também pode codificar algo por conta própria, usando alguma biblioteca cliente HTTP como libcurl (e muitas linguagens de script, por exemplo, Python, Guile, Perl, etc ... possuem numerosas facilidades de clientes HTTP). Certifique-se de aprender um pouco mais sobre HTTP e seu .

Você pode encontrar (para Linux) algumas ferramentas de linha de comando específicas do youtube.

    
por 30.11.2017 / 15:07