iTunes: déplacer des fichiers d'un lecteur réseau

3

J'ai en quelque sorte foiré ma base de données iTunes telle qu'elle iTunes/iTunes Music Library.xmlcontient des chemins d'accès réseau:

<key>Location</key><string>file://localhost/Volumes/media/Music/iTunes/iTunes%20Media/Music/Unknown%20Artist/Unknown%20Album...</string>

La plupart des fichiers sont là où ils appartiennent file://localhost/Users/Shared/..., mais pas tous. En outre, tous les fichiers se trouvent sur le disque local, par exemple, /Volumes/media/Music/iTunes/iTunes Media/Music/Artis/Album/Track.mp3ont été copiés dans le répertoire local /Users/Shared/Music/iTunes/iTunes Media/Music/Artis/Album/Track.mp3.

J'ai utilisé Fichier > Bibliothèque > Organiser la bibliothèque ... et activé la case à cocher Consolidation des fichiers (ainsi que Réorganiser les fichiers dans le dossier "iTunes Media" ), mais cela n'a pas déplacé tous les fichiers situés sur le réseau sur le disque local.

iTunes/iTunes Music Library.xmllui-même semble être un fichier en écriture seule, basé sur le contenu du fichier binaire iTunes/iTunes Library.itl, donc fermer iTunes, modifier iTunes/iTunes Music Library.xmlpour corriger les chemins et redémarrer iTunes ne résout pas le problème.

Existe-t-il un moyen de mettre à jour la base de données iTunes afin qu’elle utilise des chemins de fichiers locaux au lieu de chemins de réseau pour certains fichiers? (Cela concerne 9888 entrées sur 11449 entrées dans iTunes.)


J'ai un problème similaire / identique avec iPhoto , dans lequel certains fichiers sont situés sur le réseau et d'autres pas, et je ne sais pas comment les consolider pour qu'ils soient tous sur la machine locale ...

jonp
la source
J'ai trouvé la méthode ci-dessous, qui semble bien contourner le problème de "l'ignorer ou de dupliquer toutes les maudites données" avec d'autres méthodes que j'ai vues. Je ne l'ai pas testé moi-même mais ça a l'air sain. Il semble également que toutes les autres données, listes de lecture, etc. seront conservées, mais laissez-moi savoir dans les commentaires s'il perd quelque chose et je l'ajouterai à la réponse, pour référence ultérieure. Inutile de dire que les sauvegardes sont recommandées.
Tetsujin

Réponses:

4

Réinitialiser la bibliothèque iTunes

Ouvrez le dossier de musique iTunes dans le Finder (situé dans votre dossier de base / Musique / iTunes) et faites glisser iTunes Music Library.xml et iTunes Library.itl sur le bureau. Cela réinitialisera iTunes la prochaine fois que vous le lancerez, mais ne le démarrez pas encore. Nous allons travailler sur le fichier xml, alors que le fichier itl n'est là que pour la sauvegarde.

Modifier l'emplacement où iTunes conserve la musique

Dans les préférences iTunes> Avancé, cliquez sur «changer» en regard de «l'emplacement du dossier iTunes Music», puis sélectionnez votre disque dur.

Regardez à l'intérieur de la bibliothèque iTunes pour voir quel est le problème

Si votre bibliothèque iTunes est immense, utilisez Terminal pour examiner les premières lignes, ce que vous pouvez facilement faire avec

head -n100 /Users/ME/Desktop/iTunes\ Music\ Library.xml

(vous pouvez simplement taper "head -n100" et faire glisser le fichier sur Terminal pour laisser OS X saisir le nom à votre place).

  <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>Major Version</key><integer>1</integer>
      <key>Minor Version</key><integer>1</integer>
      <key>Date</key><date>2012-08-13T21:09:21Z</date>
      <key>Application Version</key><string>10.6.3</string>
      <key>Features</key><integer>5</integer>
      <key>Music Folder</key><string>file://localhost/Volumes/HD1T/Music/</string>
      <key>Library Persistent ID</key><string>C326B89DCF4457DF</string>
      <key>Tracks</key>
      <dict>
          <key>41557</key>
          <dict>
              <key>Track ID</key><integer>41557</integer>
              <key>Name</key><string>Fifths (Jazzanova 6 Sickth Mix)</string>
              <key>Artist</key><string>Ski</string>
              <key>Album</key><string>Jazzanova: The Remixes, 1997-2000</string>
              <key>Grouping</key><string>where:de</string>
              <key>Genre</key><string>ambient-synth-90s</string>
              <key>Kind</key><string>MPEG audio file</string>
              <key>Size</key><integer>19718194</integer>
              <key>Total Time</key><integer>482925</integer>
              <key>Disc Number</key><integer>2</integer>
              <key>Disc Count</key><integer>2</integer>
              <key>Track Number</key><integer>1</integer>
              <key>Track Count</key><integer>10</integer>
              <key>Year</key><integer>2000</integer>
              <key>Date Modified</key><date>2008-12-05T14:26:06Z</date>
              <key>Date Added</key><date>2012-07-14T07:42:37Z</date>
              <key>Bit Rate</key><integer>320</integer>
              <key>Sample Rate</key><integer>44100</integer>
              <key>Play Count</key><integer>12</integer>
              <key>Play Date</key><integer>3321087305</integer>
              <key>Play Date UTC</key><date>2009-03-28T10:15:05Z</date>
              <key>Rating</key><integer>80</integer>
              <key>Album Rating</key><integer>80</integer>
              <key>Album Rating Computed</key><true/>
              <key>Artwork Count</key><integer>1</integer>
              <key>Persistent ID</key><string>E5B52C3DE807B7DC</string>
              <key>Track Type</key><string>File</string>
              <key>File Type</key><integer>1297106739</integer>
              <key>Location</key><string>file://localhost/Users/ME/Music/iTunes/iTunes%20Media/Music/Ski/Jazzanova_%20The%20Remixes,%201997-2000/Fifths%20(Jazzanova%206%20Sickth%20Mix).mp3</string>

Vous devez rechercher le fichier: // bit du xml. Ici, il me dit qu'il cherche dans / Users / ME / Music /, c'est-à-dire mon dossier personnel au lieu de mon disque dur externe.

Utilisez sed pour corriger le chemin et créer un nouveau fichier xml

sed est un utilitaire Unif astucieux que vous pouvez utiliser à partir de Terminal. Il peut ouvrir un fichier, le parcourir ligne par ligne, modifier les éléments d’une ligne à l’autre, puis placer le résultat dans un autre fichier.

sed 's/file:\/\/localhost\/Users\/ME\/Music\/iTunes\/iTunes%20Media\//file:\/\/localhost\/Volumes\/HD1T\//'  < /Users/ME/Desktop/iTunes\ Music\ Library.xml  > /Users/ME/Music/iTunes/iTunes\ Music\ Library.xml

Voici une ventilation de ce que la commande fait.

sed appelle la commande sed - il s'agit de l'éditeur de flux

’s/…/…./’sed aura lui-même besoin d’instructions, qui sont des chaînes d’où l’apostrophe. s / a / b / signifie "si vous trouvez un a, remplacez-le par b"

file:\/\/localhost\/Users\/ME…c'est la chaîne que nous recherchons. Sed étant donné que sed est utilisé pour s /… /… /, si vous en avez besoin dans la chaîne, vous devez les échapper avec des slashs en arrière

file:\/\/localhost\/Volumes\/HD1T\/ la chaîne que nous remplaçons par

< /Users/ME/Desktop/iTunes\ Music\ Library.xml Le signe inférieur à signifie "utiliser ce fichier en tant qu'entrée" - dans ce cas, le fichier xml que j'avais fait glisser sur le bureau

> /Users/ME/Music/iTunes/iTunes\ Music\ Library.xmlet cela signifie «créer ce fichier en sortie». Nous demandons à sed de recréer le fichier de bibliothèque xml à partir de celui du bureau, mais en modifiant quelques bits comme il le fait

Créer une bibliothèque iTunes cassée

Maintenant, c'est important - si vous démarrez iTunes maintenant, avec le nouveau fichier .xml et l'absence de fichier .itl, rien ne se passera. iTunes ignorera le fichier XML et reviendra à une bibliothèque vide. Mais si iTunes trouve un fichier .itl cassé, il utilisera le fichier .xml que nous venons de manipuler pour recréer le fichier .itl. Le moyen le plus simple de créer un fichier .itl cassé est depuis un terminal:

touch ~/Music/iTunes/iTunes\ Library.itl

ce qui créera un fichier vide - suffisamment cassé pour iTunes.

Redémarrer iTunes

Maintenant, iTunes va enfin faire attention au fichier xml - il montrera une boîte de dialogue disant «Importer 'iTunes Music Library.xml'…». Cela peut prendre un certain temps, même s'il ne s'agit pas de copier des fichiers MP3.

Source: http://gotofritz.net/blog/howto/fixing-itunes-cannot-find-music/

Tetsujin
la source
1
Brillant! Mon google-fu n'a jamais trouvé cet article de blog :-(, et il ne m'est jamais venu à l'idée de créer un fichier invalide .itl ... Pendant ce temps, alors que j'essayais de résoudre ce problème, j'ai utilisé les préférences iTunes pour déplacer le répertoire sur un autre disque, puis de le réexécuter. Fichier > Bibliothèque > Organiser la bibliothèque ... Elle est toujours en cours et nécessite beaucoup d’espace; je signalerai si cela fonctionne. Je dois essayer le truc "fichier invalide .itl" avec iPhoto
jonp
1
Moi non plus - j'essaierai cette méthode la prochaine fois que je mettrai à jour Windows iTunes, qui partage le même emplacement de bibliothèque que le Mac, mais n'est jamais tout à fait synchronisé. Je dois donc régulièrement passer par tous les palabres grep / replace / import. Cela semble une meilleure option. En fait, pas le temps comme le présent - fera rapport ...
Tetsujin
La dernière fois que j'ai essayé ce processus, en recherchant / remplaçant les chemins puis en les important manuellement vers iTunes, cela prenait environ 8 heures. Cette méthode a pris environ 15 minutes pour environ 6 000 pistes, y compris le fait de revenir aux routines «informations de lecture sans interruption» et «volume audio», même si elle a beaucoup ralenti à environ 5 pistes. Elle a également perdu des œuvres d'art, mais cela a été facilement corrigé. Checked & Unchecked a survécu, tout comme les listes de lecture, le nombre de parties et le classement par étoiles, mais la date d'ajout a été mise à jour. Dans l'ensemble, pas un mauvais effort.
Tetsujin
1

Je n'ai pas essayé la réponse bien meilleure de @Tesujin. Je suis certain que le sien est beaucoup plus rapide que ce que j'ai fait.

Cette "solution" a fonctionné pour moi. Il consomme également beaucoup d'espace disque. Cependant, comme "avantage" supplémentaire, plusieurs fichiers ont été oubliés ...

  1. Cliquez sur iTunes > Préférences ...
  2. Cliquez sur l' onglet Avancé .
  3. Modifiez l'emplacement du dossier multimédia iTunes, par exemple, sur un autre disque. Quelque chose avec un nom de chemin qui ne sera pas trop similaire au chemin actuel, pour rendre Grep (1) plus facile plus tard.
  4. Cliquez sur OK et fermez la fenêtre Préférences.
  5. Cliquez sur Fichier > Bibliothèque > Organiser la bibliothèque ... , cochez la case Consolidation des fichiers , puis cliquez sur OK .

    Cela se traduira par la copie de votre bibliothèque dans le nouvel emplacement, en "réparant" les chemins au fur et à mesure. Cela signifie que vous avez besoin de suffisamment d'espace disque disponible pour stocker deux copies complètes de votre bibliothèque musicale.

  6. Quittez iTunes.
  7. Vérifiez le contenu de iTunes/iTunes Music Library.xml, en identifiant qu'il ne contient pas le ou les chemins précédents:

    $ grep Users/Shared 'iTunes Music Library.xml'
    $ grep Volumes/media 'iTunes Music Library.xml'
    

    Ce que vous voulez, c'est pas de correspondance . En fait, j'ai eu plusieurs matches. le montage réseau était encore utilisé pour environ 10 fichiers, tandis que l'emplacement précédent contenait environ 5 correspondances.

À ce stade, une enquête plus approfondie était justifiée. Comme It Turns Out ™, mon partage réseau possédait un système de fichiers sensible à la casse. Les fichiers non copiés étaient donc dus à des modifications de la casse. Par exemple, la chanson était en fait dans 'ArTist / Album / Song.mp3' alors qu'il y avait Fichier 'Artiste / Album / Another Song.mp3'; Apparemment, iTunes n'aime pas les artistes / albums qui ne diffèrent que par les cas, et il y en avait environ 10.

Résoudre ces problèmes restants était simple, si étrange:

  1. Trouvez le fichier source dans le Finder. (Cela peut nécessiter de copier le fichier via le shell root sur le NAS ... ;-)
  2. Recherchez l'entrée "mauvaise" dans iTunes.
  3. Fichier > Obtenir des informations sur l'entrée.
  4. iTunes peut se plaindre de ne pas trouver le fichier. Reportez iTunes au fichier dans (1).
  5. Accédez à l' onglet Fichier et vérifiez une nouvelle fois l' entrée de l' emplacement . Par exemple, l'emplacement était sur mon NAS.
  6. Cliquez sur OK
  7. Faites glisser le fichier dans (1) sur iTunes. iTunes va maintenant copier le fichier, éliminant ainsi le besoin de mon NAS pour ce fichier particulier.
  8. Vérifiez que l'emplacement est fixé via (4) et (5).

Ce qui est amusant, c’est que si je sautais les étapes initiales (2) - (5), iTunes copiait le fichier, mais il y aurait deux morceaux dans iTunes, un sur le NAS / mauvais emplacement et un récemment ajouté. Je avais besoin de Get Info le fichier premier afin de « mettre à jour » l'emplacement du fichier.

jonp
la source