Ma musicothèque est essentiellement en FLAC (en provenance des CD que je continue d'acheter), et je me sers de ces fichiers FLAC pour générer mes MP3. J'importe ensuite ces MP3 sur le macbook de Nadège pour emmener notre musique avec nous.
Comme je fais cette manipulation assez souvent, je me retrouve avec plein de doublons dans iTunes (je n'ai pas encore très bien compris les heuristiques d'import d'iTunes). Comme j'ai un peu galéré pour trouver une solution "automatique", je la mets ici.

1) je supprime les doublons physiques dans les arborescences avec le terminal et ce script qui génère un script "rm_doublons.sh" qui efface tous les doublons :

#!/bin/sh
FICHIER_SORTIE=rm_doublons.sh
echo "#!/bin/sh" > $FICHIER_SORTIE
find "$@" -type f -exec md5 {} \; |
  sort --field-separator = --key=2,2 |
  awk -F ' = ' '{ if (!($2 in a)) {a[$2]} else {print}}' |
  sed 's/MD5 (\(.*\)) =.*/rm ""/' >> $FICHIER_SORTIE
chmod a+x $FICHIER_SORTIE
ls $FICHIER_SORTIE

Pour l'utiliser, copier le contenu dans un fichier avec un nom qui parle (ex genere_rm_doublons.sh), que l'on rend exécutable (par exemple en faisant un chmod +x genere_rm_doublons.sh). Et puis le lancer en lui donnant une liste de répertoires contenant des doublons. Il se base sur les empreintes numériques MD5 des fichiers (le contenu des fichiers).

2) dans iTunes, les fichiers supprimés sont toujours visibles. Il y a une astuce sur ce post que je résume :

  • créer une playlist intelligente tous_les_morceaux en mettant un critère qui inclut tous les morceaux (par exemple dont l'artiste n'est pas 1234567890)
  • créer une playlist statique Tous
  • créer une playlist intelligente TousLesMorceauxEffaces qui est tous_les_morceaux et qui n'est pas Tous
  • copier ensuite le contenu de tous_les_morceaux dans Tous. Les fichiers qui sont absents ne seront pas copiés et apparaîtront dans la liste TousLesMorceauxEffaces
  • reste ensuite à supprimer tout ce qu'il y a dans TousLesMorceauxEffaces