Procurando por um gerenciador de download de terminal

Procurando por um gerenciador de download de terminal

Estou procurando um gerenciador de download rodando em CLI (terminal).

A ferramenta deve resolver o seguinte propósito.

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

  2. Deve 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ça.

Eu uso um youtube-dlscript nodejs agora. Mas o script carece de monitoramento de conexão e verificação de integridade de download, recurso de retomada de download.

Eu tentei o Extreme Download Manager e ele não funcionava sem cabeça.

Quaisquer contribuições para alcançar o mesmo são apreciadas.

Responder1

Dois whileloops bashdevem 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é um pacote python disponível para instalação por meio de um gerenciador de pacotes comum, como apt.
  • /tmp/ytarquivo contém uma lista de URLs linha por linha.
  • -isignifica continuar escolhendo o próximo URL no arquivo se encontrar um erro de URL inválido (mas não um erro de soquete, que irá para pingo loop "falha e espera pela rede ativa")
  • -csignifica forçar a retomada de arquivos parcialmente baixados. O nome do arquivo deve ter um formato consistente para que o currículo funcione (ou seja, você não pode alterar youtube-dlo formato da próxima vez e esperar que o currículo funcione). Eu pessoalmente uso -o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'o formato
  • Pessoalmente, também adiciono --no-mtimepara garantir que o arquivo "toque" (útil se eu quiser listar a classificação do arquivo por tempo de download em vez de tempo de atualização do vídeo).

Responder2

Qualquer linha de comandoHTTPcliente deve ser útil. Em sistemas POSIX, considereGNU wgetouondulação(e, se o protocolo forFTP, um dos numerosos clientes de linha de comando FTP, comoncftp).

Você também pode codificar algo sozinho, usando alguma biblioteca cliente HTTP comolibcurl(e muitas linguagens de script, por exemplo, Python, Guile, Perl, etc... possuem vários recursos de cliente HTTP). Não deixe de aprender um pouco mais sobreHTTPe os seusbiscoitos.

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

informação relacionada