Piping em stdin um arquivo que está sendo baixado

0

Eu tenho baixado arquivos zip do Google Drive. Os arquivos contêm vídeos mp4 e eu não queria esperar o download terminar. O VLC pode reproduzir arquivos incompletos, mas os arquivos baixados são arquivos zip e não mp4. wget é provavelmente a maneira mais fácil de enviar um download diretamente para um filtro, e então eu poderia usar funzip e gerar a saída para um arquivo, e depois reproduzi-lo como se estivesse transmitindo um vídeo. No entanto, não consegui baixar o wget do Google Drive, ele apenas retornou ERROR 400 erro de solicitação incorreto, o mesmo aconteceu com curl , então tive que me conformar com o Chromium. Dessa forma, eu teria que canalizar a partir de um arquivo incompleto, em vez de um download.

Existe alguma maneira simples de usar um arquivo atualmente sendo baixado para canalizar para funzip ?

    
por busukxuan 07.12.2016 / 04:16

1 resposta

0

tail -n +0 -f /path/to/file | funzip ...

Basicamente, o tail observa as alterações no comprimento do arquivo e continua transmitindo bytes adicionais. No entanto, não é possível saber quando o download está concluído, portanto, pode ser necessário matá-lo em algum momento, dependendo do que você está fazendo com o fluxo.

Assumimos, é claro, que o navegador tentará baixar o arquivo linearmente e não gravará nenhum metadado para indicar que o arquivo foi baixado apenas parcialmente (que posteriormente seria substituído por bytes de arquivo reais). Na prática, os downloaders nos navegadores são bastante conservadores, então é esperado que isso funcione.

    
por 07.12.2016 / 04:19