Estou procurando um gerenciador de download em execução na CLI (terminal).
A ferramenta deve resolver o seguinte propósito.
Pegue uma lista de URLs do YouTube como entrada / pegue uma lista de URLs de um arquivo.
Deve pausar e retomar o download quando a conexão de rede for interrompida.
Deve ser executado no terminal. Estou executando isso em um servidor de mídia sem cabeça.
Eu uso um youtube-dl
script 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 gerenciador de download extremo e não funcionava sem cabeça.
Quaisquer insumos para alcançar o mesmo são apreciados.
Dois
while
loopsbash
devem ser suficientes:Explicação:
youtube-dl
é um pacote python disponível para instalação por meio do gerenciador de pacotes comum, comoapt
./tmp/yt
arquivo contém lista de urls linha por linha.-i
significa continuar escolhendo o próximo url no arquivo se encontrar um erro inválido de url (mas não erro de soquete, que iráping
para o loop "falha e espera pela rede ativa")-c
significa forçar a retomada de arquivos parcialmente baixados. O nome do arquivo deve ter um formato consistente para que o resumo funcione (ou seja, você não pode alterar oyoutube-dl
formato da próxima vez e esperar que o resumo funcione). Eu pessoalmente uso o-o './%(title)s-%(upload_date)s-%(id)s.%(ext)s'
formato--no-mtime
para garantir o arquivo "toque" (útil se eu quiser listar a classificação do arquivo por tempo de download em vez de tempo de atualização de vídeo).Qualquer cliente HTTP de linha de comando deve ser útil. Em sistemas POSIX, considere GNU wget ou curl (e, se o protocolo for FTP , um dos vários clientes de linha de comando FTP, como ncftp ).
Você também pode codificar algo sozinho, usando alguma biblioteca de cliente HTTP como libcurl (e muitas linguagens de script, por exemplo, Python, Guile, Perl, etc... têm vários recursos de cliente HTTP). Certifique-se de aprender um pouco mais sobre HTTP e seus cookies .
Você pode encontrar (para Linux) algumas ferramentas de linha de comando específicas do YouTube.