Esto podría ser un poco extraño.
Tengo una colección de canciones en iTunes y me gustaría copiarla en una tarjeta SDCARD para reproducirla en la radio de mi auto, junto con las listas de reproducción que tengo que escuchar la música en el "orden correcto".
Copiar la estructura de carpetas en $HOME/Music/iTunes/iTunes Media/Music/
funciona bien y el reproductor puede leer los archivos.
En cuanto a las listas de reproducción, iTunes permite exportar las listas de reproducción en formato .m3u
o .m3u8
. Las rutas en la lista de reproducción están en formato "OSX", pero una línea rápida y rápida cambia las rutas a las relativas y las pone en formato DOS:
sed -i.bak -e 's:/Users/jjarava/Music/iTunes/iTunes Media/Music:..:g' -e 's:/:\:g' "$1";
(la tarjeta SDCARD en la radio del automóvil se identifica como SDCARD:\
)
Puedo ver los archivos de la lista de reproducción en la radio del auto, pero solo ALGUNOS de los archivos son "visibles" / se reproducen desde la lista de reproducción.
Dado que todos los archivos "faltantes" contienen algún carácter extendido (como á
, é
, í
, ó
o ú
en español). He sido mordido por la forma diferente de codificar los nombres en el pasado (consulte Linus Torvalds y OS X Filesystem para el contexto), por lo que sospecho que el problema podría deberse a la codificación de los nombres de los archivos en la SDCARD. Cuando "exploro" la tarjeta SDCARD, puedo ver los autores / rutas correctamente y todos los archivos están disponibles, por lo que creo que es un problema de la forma en que se leen las rutas desde el archivo .m3u y (no) se resuelven en los archivos adecuados.
Mi primera idea fue escribir otra secuencia de comandos para buscar rutas "ofensivas" y cambiarles el nombre tanto en el sistema de archivos como en las listas de reproducción, pero estoy golpeando una pared porque buscar / grep, etc. parece tener problemas al trabajar con archivos. con caracteres extendidos en ellos. Algo que "debería" funcionar como:
find /Volumes/MUSICA_VW/ -iname '*.mp3' | grep -e '[áéíóú]'
para obtener las canciones / rutas ofensivas, devuelve cada canción (es decir, los mismos resultados que find
solo)
La opción de cambiar el nombre de los archivos en iTunes no es realmente una opción, ya que cada vez que agrego música debe ser "procesada". No me importa mucho tener las rutas correctas, etc. en el reproductor, por eso no me importaría hacer un cambio de nombre masivo, etc. como parte de la "exportación", pero la información en iTunes debería ser la correcta ...
Entonces, antes de ahondar en los secretos arcanos de bash
y findutils
, o simplemente marcando la bala y codificando algo en Python, ¿alguna sugerencia? Estoy seguro de que no soy el primero en tener este problema específico, estoy seguro.
Y a cualquiera que se haya tomado el tiempo de leer hasta ahora, GRACIAS !