Esta es una mejora de lo discutido anteriormente: Constantly check folder for specific file type and run terminal command with new filename as an argument
Solía amar Automator para tales tareas, pero encontré que en esta tarea pasar argumentos con nombres de archivo en los pasos de Automator fallaba para mí. También estoy abierto a buenos scripts.
Tengo una Mac Intel y una M2, la antigua es portátil y encontré que la M2 graba (a una resolución más baja y recortada) el vídeo más rápido que la Intel, incluso al enviar los resultados por WiFi. Me estoy sorprendiendo a mí mismo con lo siguiente
-
Compartir Samba en M2 accesible a través de WiFi
-
Edita (si se vació en el paso 4) o crea un nuevo archivo queue.txt con un enlace de YouTube. La carpeta MMi es necesaria en el paso 4 para que funcione correctamente
-
Un par de programas llamados entr y yt-dlp que revisan las actualizaciones en queue.txt y, si hay una nueva, descargan un vídeo .webm de 720p como ejemplo https://www.youtube.com/watch?v=WO2b03Zdu4Q
ls queue.txt | entr yt-dlp -q -f "best[height<=720]" --batch-file queue.txt
-
yt-dlp convenientemente agrega .part al archivo en progreso de descarga para no interferir con los siguientes pasos, una vez completado, un script (gracias a @nohillside) recoge la codificación:
while :; do ls . | find . -depth 1 -type f -iname "*.webm" -exec sh -c ' f="$1" mv -- "$f" MMi/ handbrakecli --encoder x264 --width 800 --format av_mp4 --optimize --non-anamorphic --rate 30 -i "MMi/$f" -o "MMi/${f%.webm}.mp4" rm "MMi/$f" cat /dev/null > yt.txt ' _ {} \; done
-
Una vez finalizado, necesitas rsync para devolverlo a la Mac Intel a través de WiFi (las claves ssh ya están intercambiadas)
rsync MMi/*.mp4 user@intel_mac/MMi
¿Hay alguna forma de combinar todo en un solo script, además de mantener tres "daemon", tal vez launchctl en un .plist o un programa de python?
¿Hay guías o plantillas para hacer funcionar este script como un daemon en macOS?