recientemente preguntéEsta pregunta sobre el uso de gpaste get
la salida en cuanto STDIN
a youtube-dl. Desde entonces, esa pregunta ha sido respondida, pero me gustaría pasar al siguiente paso de la automatización, una tarea de múltiples comandos:
Inicie una descarga de video en la carpeta actual usando la URL copiada de la barra de URL en el comando de Firefox:
youtube-dl $(gpaste get [video url])
convierta el archivo mkv, mp4 o m4a a un
comando .wav:ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav
[...el proceso continúa...]
Mi pregunta es: todavía soy nuevo en expresiones regulares. ¿Existe una secuencia de expresiones regulares que pueda emplear para tomar el nombre del archivo creado por el youtube-dl
comando y usarlo como entrada para el siguiente ffmpeg
comando?
He aquí un ejemplo:
gpaste get 0
devolucioneshttps://somevideo.com/video
youtube-dl $(gpaste get 0)
Descarga el archivo a la carpeta actual con Y
el nombre de archivo &&
ffmpeg -i <filename Y>
Devolverá un duplicado del archivo inicial, ahora en .wav
formato
¿Cómo puedo decirle a bash que obtenga ese nombre de archivo Y antes de que exista, para poder poner todo esto en un script?
¿También necesitaría filtrar según una variedad de tipos de archivos (todos los tipos de video) o filtraría por el archivo más reciente en la carpeta actual o una combinación de ambos?
Respuesta1
Recién revisé la documentación de youtube-dl, acepta este parámetro:
--get-filename Simulate, quiet but print output filename
Entonces, tal vez puedas probar algo como esto:
videourl=$(gpaste get [video url])
videofilename=$(youtube-dl --get-filename $videourl)
youtube-dl $videourl
#further processing.