Usando o regex no script BASH para pegar o nome do arquivo / tipo criado recentemente como saída pelo comando anterior na sequência

1

Recentemente, perguntei a Esta questão sobre o uso de gpaste get output como STDIN para youtube-dl . Essa pergunta foi desde então respondida, mas eu gostaria de passar para a próxima etapa de automação de uma tarefa com vários comandos:

  1. inicie um download de vídeo na pasta atual usando url copiado da barra de URL no firefox comando: youtube-dl $(gpaste get [video url])

  2. converta o arquivo mkv ou mp4 ou m4a em um .wav
    comando: ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav

  3. [... o processo continua ...]

Minha pergunta é: ainda sou novo no regex. Existe uma sequência regex que eu possa empregar para capturar o nome do arquivo a partir do arquivo criado pelo comando youtube-dl e usá-lo como entrada para o seguinte comando ffmpeg ?

Veja um exemplo:

gpaste get 0

retorna https://somevideo.com/video

youtube-dl $(gpaste get 0)

Transfere o arquivo para a pasta atual com Y nome_do_arquivo & &

ffmpeg -i <filename Y>

Retornará uma cópia do arquivo inicial, agora em .wav format

Como posso obter o bash para obter o nome Y antes que ele exista, para que eu possa colocar tudo isso em um script?

Também precisaria filtrar de acordo com um intervalo de tipos de arquivos (todos os tipos de vídeo) ou eu filtraria o arquivo mais recente na pasta atual ou uma combinação de ambos?

    
por Andrew 30.09.2015 / 03:05

1 resposta

1

Acabou de verificar a documentação do youtube-dl, ele aceita este parâmetro:

--get-filename                   Simulate, quiet but print output filename

Então, talvez você possa tentar algo assim:

videourl=$(gpaste get [video url])
videofilename=$(youtube-dl --get-filename $videourl)
youtube-dl $videourl
#further processing. 
    
por 30.09.2015 / 03:34