iTunes: sposta i file da un'unità di rete

3

Ho in qualche modo rovinato il mio database di iTunes in modo che iTunes/iTunes Music Library.xml contenga percorsi di rete:

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

La maggior parte dei file sono dove appartengono, in file://localhost/Users/Shared/... , ma non tutti. Inoltre, tutti i file sono situati sul disco locale, ad es. /Volumes/media/Music/iTunes/iTunes Media/Music/Artis/Album/Track.mp3 è stato copiato nella directory locale /Users/Shared/Music/iTunes/iTunes Media/Music/Artis/Album/Track.mp3 .

Ho usato File > Libreria > Organizza libreria ... e attiva la casella di controllo Consolida file (insieme a Riorganizza i file nella cartella "iTunes Media" ), ma ciò ha fatto non spostare tutti i file localizzati in rete sul disco locale.

iTunes/iTunes Music Library.xml stesso sembra essere un file di sola scrittura, basato sul contenuto del file binario iTunes/iTunes Library.itl , quindi chiudere iTunes, modificare iTunes/iTunes Music Library.xml per correggere i percorsi e riavviare iTunes non risolve il problema .

C'è un modo per aggiornare il database di iTunes in modo che utilizzi percorsi di file locali anziché percorsi di rete per alcuni file? (Questo influenza 9888 voci su 11449 voci all'interno di iTunes.)

Ho un problema simile / identico a iPhoto , in cui alcuni file sono localizzati in rete e altri no, e non so come consolidarli per essere tutti locali machine ...

    
posta jonp 22.11.2014 - 16:24
fonte

2 risposte

4

Reimposta la libreria di iTunes

Apri la cartella musicale di iTunes nel Finder (si trova nella cartella Home / Musica / iTunes) e trascina iTunes Music Library.xml e iTunes Library.itl sul desktop. Ciò ripristinerà iTunes la prossima volta che lo avvii, ma non lo avvii ancora. Lavoreremo sul file xml, mentre il file itl è lì solo per il backup.

Modifica la posizione in cui iTunes conserva la musica

Nelle preferenze di iTunes > Avanzate, fai clic su "cambia" accanto a "Posizione della cartella musicale iTunes" e seleziona il tuo disco rigido.

Cerca all'interno della libreria di iTunes per vedere qual è il problema

Se la tua libreria di iTunes è enorme, è una buona idea usare Terminal per guardare le prime poche righe, che puoi fare facilmente con

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

(puoi semplicemente digitare "head -n100" e trascinare il file su Terminal per consentire a OS X di digitare il nome per te) L'output sarà qualcosa sulla falsariga di

  <?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>

Devi cercare il file: // bit di xml. Qui mi sta dicendo che sta cercando in / Users / ME / Music /, cioè la mia cartella home invece del mio disco rigido esterno.

Usa sed per correggere il percorso e crea un nuovo file xml

sed è un'utile utility unix che puoi usare da Terminal. Può aprire un file, visualizzarlo riga per riga, modificare le cose su ogni riga e quindi inserire il risultato in un altro file.

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

Ecco una ripartizione di ciò che fa il comando.

sed chiama il comando sed - sta per Stream Editor

’s/…/…./’ sed avrà di per sé bisogno di istruzioni, che sono quindi stringhe '(apostrofo). s / a / b / significa "se trovi un a, sostituiscilo con b"

file:\/\/localhost\/Users\/ME… questa è la stringa che stiamo cercando. Nota che dato che le barre in avanti sono usate da sed per s / ... / ... /, se ne hai bisogno nella stringa devi sfuggirle con barre indietro

file:\/\/localhost\/Volumes\/HD1T\/ la stringa che stiamo sostituendo con

< /Users/ME/Desktop/iTunes\ Music\ Library.xml Il segno meno che significa "usa questo file come input" - in questo caso, il file xml che avevo trascinato sul desktop

> /Users/ME/Music/iTunes/iTunes\ Music\ Library.xml e questo significa "crea questo file come output". Stiamo chiedendo a sed di ricreare il file della libreria xml da quello sul desktop, ma cambiando alcuni bit mentre lo fa

Crea una libreria iTunes rotta

Ora questo è importante - se avessi appena avviato iTunes ora, con il nuovo file .xml lì e nessun file .itl lì, non succederà nulla. iTunes ignorerà il file xml e si reimposterà su una libreria vuota. Ma se iTunes trova un file .itl danneggiato, userà il file .xml con cui abbiamo appena giocato per ricreare il file .itl. Il modo più semplice per creare un file .itl danneggiato è dal terminale:

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

che creerà un file vuoto - rotto abbastanza per iTunes.

Riavvia iTunes

Ora iTunes farà finalmente attenzione al file xml - mostrerà una finestra di dialogo che dice "Importazione" di iTunes Music Library.xml "..." Questo potrebbe richiedere del tempo, anche se in realtà non copia i file mp3.

Fonte: link

    
risposta data 22.11.2014 - 17:07
fonte
1

Non ho provato la risposta dal suono molto migliore di @Tesujin. Sono sicuro che è molto più veloce di quello che ho fatto.

Questa "soluzione" ha funzionato per me. Anche consuma molto spazio sul disco. Tuttavia, come ulteriore "vantaggio", ha trovato diversi file che sono stati trascurati ...

  1. Fai clic su iTunes > Preferenze ...
  2. Fai clic sulla scheda Avanzate .
  3. Modifica la posizione della cartella multimediale di iTunes, ad es. su un altro disco. Qualcosa con un nome di percorso che non sarà troppo simile al percorso corrente, per rendere più facile grep (1) più tardi.
  4. Fai clic su OK e chiudi la finestra delle preferenze.
  5. Fai clic su File > Libreria > Organizza libreria ... , abilita la casella di controllo Consolida file e fai clic su OK .

    Ciò comporterà copiare sul tuo grimorio nella nuova posizione, "aggiustando" i percorsi man mano che procede. Questo a sua volta significa che hai bisogno di abbastanza spazio libero su disco per memorizzare due copie complete della tua libreria musicale.

  6. Esci da iTunes.
  7. Verifica il contenuto di iTunes/iTunes Music Library.xml , grepping che non contiene i percorsi precedenti:

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

    Ciò che vuoi è nessuna corrispondenza . Quello che ho ottenuto è stato parecchie corrispondenze; il mount di rete era ancora in uso per ~ 10 file, mentre la posizione precedente aveva ~ 5 corrispondenze.

A questo punto, sono state necessarie ulteriori indagini. As It Out Out ™, la mia condivisione di rete aveva un filesystem con distinzione tra maiuscole e minuscole, quindi i file che non erano stati copiati erano dovuti a modifiche del caso, ad es. la canzone era in realtà in "ArTist / Album / Song.mp3" mentre c'era anche un file "Artist / Album / Another Song.mp3"; A quanto pare a iTunes non piacciono gli artisti / album che differiscono solo nel caso, e ce ne sono stati ~ 10.

La risoluzione di questi problemi rimanenti era semplice, se strana:

  1. Trova il file sorgente in Finder. (Potrebbe essere necessario copiare il file tramite la shell di root sul NAS ...; -)
  2. Trova la voce "cattiva" in iTunes.
  3. File > Ottieni informazioni la voce.
  4. iTunes potrebbe lamentarsi di non riuscire a trovare il file. Invia iTunes al file in (1).
  5. Vai alla scheda File e controlla la voce posizione . Ad esempio, la posizione era sul mio NAS.
  6. Fai clic su OK
  7. Trascina il file in (1) su iTunes. iTunes ora copia il file, eliminando così la necessità del mio NAS per questo particolare file.
  8. Verifica che la posizione sia corretta tramite (4) e (5).

La cosa divertente è che se I salta i passi iniziali (2) - (5), iTunes copierebbe il file ma ci sarebbero due dei brani all'interno di iTunes , uno sul NAS / posizione errata e uno appena aggiunto. Avevo bisogno di Ottieni informazioni il file prima per "aggiornare" il percorso del file.

    
risposta data 23.11.2014 - 02:45
fonte

Leggi altre domande sui tag