Ejecutar un comando en la terminal después de que youtube-dl haya finalizado

Ejecutar un comando en la terminal después de que youtube-dl haya finalizado

Como está escrito en el título, me gustaría ejecutar un comando SÓLO después de que el comando anterior 'youtube-dl' haya finalizado y se haya cerrado. No estoy ejecutando este comando en bash solo en la terminal de Ubuntu.

Me gustaría ejecutar este comando:

Youtube-dl -o output.file link ; sleep 4 ; mv output* /to-directory

El comando 1 puede ejecutarse desde 5 segundos hasta xx minutos y si digo que solo duermo durante 4 segundos, es posible que no tome el tiempo suficiente para ejecutar el comando 2 cuando el comando 1 haya finalizado y cerrado independientemente del resultado. Podría usar Sleep 4 para un lapso de tiempo indefinido, pero realmente obstaculizaría por completo mi velocidad de ejecución de comandos.

Respuesta1

Si realmente solo desea mover el archivo, ¿por qué no enviarlo directamente al directorio de destino?

youtube-dl -o /to-directory/output.file link

Si desea realizar alguna otra tarea mucho más complicada, puede usar la opción --exec, descrita en la parte inferior de youtube-dl -h, por lo que el comando debería verse así:

youtube-dl -o output.file link --exec 'mv {} /to-directory/'

Aquí hay un ejemplo práctico:

youtube-dl -o irakli https://youtu.be/FyV_49qbvU4 --exec 'mv {} ~/Desktop/'

Una vez finalizado el comando, el archivo irakli.mkvestará en su archivo Desktop. ¡Disfruto ver!


Bonus track :) Aquí hay un script que estoy usando para descargar mp3 desde youtube.com, mientras lo navego a través de mi navegador de escritorio.

cat /usr/local/bin/youtube-dl-clipboard # The file must be executable, of course
#!/bin/sh
notify-send "YouTube-Download BEGIN"
youtube-dl -i -x --audio-format mp3 --output "$HOME/Downloads/%(title)s.%(ext)s" "$(xclip -o)"
  • Tenga en cuenta que el script utiliza xclip, por lo que debe instalarse junto con la versión más reciente deyoutube-dl.

Crea un atajo personalizado como este:

ingrese la descripción de la imagen aquí

Luego mientras navegasyoutube.com, simplemente copia el enlace de cualquier vídeo que te guste - Ctrl+ Cy luego presiona Ctrl+ Alt+ V. Después de unos segundos, estará disponible un nuevo archivo mp3 en el directorio de descargas.

Respuesta2

Youtube-dl -o output.file link && sleep 4 && mv output* /to-directory
o mejor aún:
Youtube-dl -o /to-directory/output.file linkya que no tendrías que mover nada más adelante.

Si youtube-dl realmente se ejecuta en segundo plano y está configurado para salir después de la descarga,
puede usar:

youtube-dl -o output.file link; while :;do sleep 1; [[ $(ps -C youtube-dl -o pid=) ]] || break;done; mv output.* /to-directory/

Explicación while :;- un bucle infinito destinado a esperar a que finalice youtube-dl.
[[ $(ps -C youtube-dl -o pid=) ]] || break- compruebe si existe una identificación de proceso para youtube-dl. si existe, haga un bucle nuevamente. De lo contrario, finalice el ciclo (usando break).

NOTA: pidof Youtube-dlel comando se puede utilizar para obtener la identificación del proceso para un programa. sin embargo, como se llama a youtube-dl usando python3, no tiene un proceso propio. Por lo tanto, pidof youtube-dlno arrojaría un valor en este caso. como tal, psse ha utilizado el comando para obtener el pid.

información relacionada