Inspirado por el enfoque de @Andrew Kozelski, he creado un oneliner UNIX shell script que consigue un resultado similar. Esto puede ser útil si, como yo, ejecutas iTunes y Windows dentro de una VM pero haces todo lo demás en Linux.
- (Igual que los dos primeros pasos anteriores en Windows) Consigue tus notas de voz en una lista de reproducción y expórtala como un archivo de texto (digamos, "playlist.txt").
- Arrastre y suelte los archivos de la lista de reproducción en una ventana del Explorador de Windows, creando archivos con nombres como "20190327 062535.m4a".
-
En la tierra de UNIX, ejecute el siguiente comando (toda una línea):
iconv -f UTF-16 -t UTF-8 playlist.txt | tr -d "\r" | awk 'BEGIN {FS="\t"}; NR>1 {sub(/^.*\\/,"",$31); sub(/\.m4a$/,"",$31); print "mv " "\""$31".m4a\" " "\""$31" "$1".m4a\""}' | sh
El resultado será que todos tus archivos serán renombrados con el título añadido: "20190327 062535 mi título aquí.m4a".
Explicación del comando:
iconv
se utiliza para convertir de UTF-16 a UTF-8, que es una codificación más sana para los nombres de archivo.
tr
elimina el carácter CR, convirtiendo efectivamente el archivo de finales de línea DOS a finales de línea UNIX.
-
awk
hace varias cosas:
- Establezca el separador de campos como tabulador, ya que iTunes exporta datos delimitados por tabuladores.
- Omitir la primera línea que es una cabecera
- Extraiga el campo 31 (que es la ruta completa que iTunes utiliza para almacenar el archivo), y elimine todo hasta la última barra invertida incluida para obtener el nombre base del archivo, sustituyéndolo por la cadena vacía. Tenga en cuenta que la barra invertida se escapa una vez ( \\ ), no dos veces ( \\\ ), ya que necesita escapar del uso de awk como carácter de escape, pero no de bash, ya que todo el comando de awk está envuelto en comillas simples.
- Elimine también el sufijo ".m4a", ya que lo añadiremos más tarde.
- imprime una línea de comandos que utiliza el
mv
para mover (renombrar) el archivo.
- Por último, canalice el resultado a
sh
para ejecutar todos los comandos de renombramiento.
Sustituir el final sh
con less
para inspeccionar los comandos antes de ejecutarlos.
Esto podría simplificarse probablemente si se ejecuta en Windows (utilizando el Subsistema de Windows para Linux), ya que se podría copiar directamente desde el repositorio de iTunes.
Estoy seguro de que no cambiarán el formato de salida de las listas de reproducción de iTunes en el futuro porque se preocupan mucho por la compatibilidad y la interoperabilidad con otras herramientas.