Il s'agit d'une question un peu étrange.
J'ai une collection de chansons dans iTunes et j'aimerais la copier sur une SDCARD pour la jouer sur l'autoradio de ma voiture, avec les listes de lecture que j'ai pour écouter la musique dans le "bon ordre".
Copier la structure du dossier dans $HOME/Music/iTunes/iTunes Media/Music/
fonctionne correctement et le lecteur peut lire les fichiers.
En ce qui concerne les listes de lecture, iTunes permet d'exporter les listes de lecture en format .m3u
o .m3u8
format. Les chemins d'accès à la liste de lecture sont au format "OSX", mais un rapide "sed one-liner" change les chemins d'accès en chemins relatifs et les met au format DOS :
sed -i.bak -e 's:/Users/jjarava/Music/iTunes/iTunes Media/Music:..:g' -e 's:/:\\:g' "$1";
(la carte SDCARD de l'autoradio est identifiée comme étant SDCARD:\
)
Je peux voir les fichiers de la liste de lecture dans l'autoradio de la voiture, mais seuls CERTAINS des fichiers sont "visibles" / sont lus à partir de la liste de lecture.
Étant donné que tous les fichiers "manquants" contiennent un caractère étendu (comme á
, é
, í
, ó
o ú
en espagnol). J'ai été piqué par les différentes façons d'encoder les noms dans le passé (voir Linus Torvalds et le système de fichiers OS X pour le contexte), je soupçonne donc que le problème est dû à l'encodage des noms de fichiers dans le SDCARD. Lorsque je "navigue" dans le SDCARD, je peux voir les auteurs/chemins correctement et tous les fichiers sont disponibles. Je pense donc qu'il s'agit d'un problème lié à la façon dont les chemins sont lus à partir du fichier .m3u et (non) résolus vers les bons fichiers.
Ma première idée était d'écrire un autre script pour rechercher les chemins "offensants" et les renommer à la fois dans le système de fichiers et dans les listes de lecture, mais je me heurte à un mur car find/grep etc. semblent avoir des problèmes pour travailler avec des fichiers contenant des caractères étendus. Quelque chose qui "devrait" fonctionner comme :
find /Volumes/MUSICA_VW/ -iname '*.mp3' | grep -e '[áéíóú]'
pour obtenir les chansons/chemins incriminés, renvoie chaque chanson (c'est-à-dire les mêmes résultats que ceux obtenus par la fonction find
seul)
La possibilité de renommer les fichiers dans iTunes n'est pas vraiment une option, car chaque fois que j'ajoute de la musique, elle doit être "traitée". Je ne me soucie pas trop d'avoir les bons chemins d'accès, etc. dans le lecteur, c'est pourquoi cela ne me dérangerait pas de renommer en masse, etc. dans le cadre de l'"exportation", mais l'information sur iTunes devrait être la bonne...
Ainsi, avant de plonger dans les arcanes des bash
y findutils
Je ne sais pas s'il est possible d'utiliser un logiciel de gestion de l'information ou de coder quelque chose en Python, mais j'ai des suggestions à faire. Je suis sûr que je ne suis pas le premier à avoir rencontré ce problème spécifique.
Et à tous ceux qui ont pris le temps de lire jusqu'à présent, MERCI !