iTunes Library updaten?

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
Hi. Auch ich gehöre zu den Leuten, die erst seit kurzem einen Mac haben, und kriege folgende Nuss nicht geknackt:

Ich habe eine externe Festplatte (NAS), auf der meine mp3s sind. Auf diese wird über mehrere Rechner zugegriffen und immer wieder kommen auch neue Tracks hinzu, eben auch von den anderen Rechnern, oder es wird was gelöscht. Da iTunes ja offenbar seine Library nicht automatisch mit dem eingestellten Folder abgleicht und zbsp. Tags nach Änderungen überprüft, stimmen meine intelligenten Wiedergabellisten nie mit der Realität überein.

Um die Library zu aktualisieren, wird hier und da empfohlen, die Lbrarydatei zu löschen, was Unsinn ist, da damit auch alle Wertungen und Ähnliches weg sind und dies bei großen Datensätzen ewig dauert.

Nun habe ich auch schon Scripts bei Doug gesucht, die das übernehmen, aber leider ohne Erfolg.

Es gibt für Windows so eine Freeware, aber eben nicht für Mac.

Meine Hoffnung geht in Richtung Automator, da hat ein freundlicher Zeitgenosse was gebastelt und ins Netz gestellt (http://www.robertvenema.nl/journal/archive/itunes-library-auto-update-for-mac-os-x/), allerdings muß man auch hier alles recht mühsam und auch fehleranfällig per Hand eingeben, ab welchem Datum etwa Änderungen gesucht werden sollen. Auch hier gibt es also keine echte Synchronisierung, wo geschaut wird, ob der Track in der Library schon gelistet ist oder nicht. Bei falschen Angaben hat man dann Dupes.

Also, vielleicht hat ja doch noch jemand eine Idee, wie man das lösen kann. Leider bin ich auf iTunes festgelegt, zum einen, weil ich Musik über einen Airport Express an die HiFi Anlage schicke, und zum anderen, weil ich total auf diesen Cover Flow stehe...

Kulmer
 

James Grieve

Holländischer Prinz
Registriert
15.04.07
Beiträge
1.866
Hoffe, ich verstehe dein Problem richtig...
Also ich würde dir empfehlen lieder nur diriekt in itunes zu ziehen, einfach per drag&drop, geht auch übers netzwerk. wenn du nicht willst, dass die lieder in deinen iTunes-Ordner kopiert werden, dann drücke einfach während des "drop" die alt-Taste, dann bleiben die Lieder an ihrem Ort. Löschen ebenfalls direkt in iTunes, z.B. über die Spalte "Hinzugefügt" in deiner Mediathek.
 

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
das würde gehen, ist aber eine frage der größe des mp3-folders, ist nämlich fast 200gb, also alles ständig nochmal importieren - das ist nicht der weg. ausserdem kann ich nicht immer sehen, welche files nun neu sind und welche nicht.

ideal wäre es also, wenn ich mit meinem macbook nach zbsp. einer reise mich ans netz stöpsle und itunes automatisch erkennt, daß in dem angegebenen mp3 ordner auf der nas-platte neue files sind, und er die automatisch in seine library einpflegt, wo sie dann nach kriterien sortiert in den jeweiligen intelligenten playlists erscheinen.

kann ja eigentlich nicht sein, daß man das per hand machen muß... in den heutigen zeiten...:)
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.476
ausserdem kann ich nicht immer sehen, welche files nun neu sind und welche nicht.
Dafür gibt es die Spalte mit dem Datum des Hinzufügens. Da kann man sogar eine 'intelligente' Wiedergabeliste daraus machen.

Ansonsten reicht es doch, die beiden Verwaltungsdateien immer auf dem neuesten Stand zu halten - ich würde sie immer, wenn ich mit iTunes etwas geändert habe, auf das NAS-Laufwerk kopieren, und wenn ich auf wieder mal was mit iTunes mache, vorher von diesem Laufwerk auf den aktuellen Rechner kopieren.
Solange du nicht gleichzeitig auf mehreren Rechnern mit iTunes arbeitest, müsste das klappen (und sich auch mit Automator oder AppleSkript elegant lösen lassen).
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Das Dumme ist halt, daß iTunes nicht "Mehrplatzfähig" ist. Also mußt Du entweder mit den Krücken leben, Dir eine andere Arbeitsweise aneignen oder mit einem anderen Programm Vorlieb nehmen.

Allerdings... Wenn ich jetzt so darüber nachdenke... Eigentlich sollte es auch, mit etwas Shell Scripting in Verbindung mit AppleScript. möglich sein, Deine "Nuss zu knacken".

Nenn mir doch mal noch ein paar der Randbedingungen. Soll Dein iTunes auch die Ordnerstruktur verwalten? Ich hoffe nicht, denn das würde es schwieriger bis unmöglich machen. Greifen auch DOSen darauf zu?
 

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
danke, aber das script hilft beim kopieren von tracks auf die interne festplatte - was ich ja nicht möchte - wenn ich das richtig verstanden habe:

This script This script assists in the management of files in the iTunes Music folder, or elsewhere, by allowing you to either add or remove those files depending on the contents of the current active iTunes Library file.
It was written to make the copying of files to the internal drive of the machine easier when the full collection of files are stored on an external device which you may not wish to connect to your Mac at a later time.

es synchronisiert aber leider eben nicht die library mit dem folder.

leider.
 

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
Das Dumme ist halt, daß iTunes nicht "Mehrplatzfähig" ist. Also mußt Du entweder mit den Krücken leben, Dir eine andere Arbeitsweise aneignen oder mit einem anderen Programm Vorlieb nehmen.

Allerdings... Wenn ich jetzt so darüber nachdenke... Eigentlich sollte es auch, mit etwas Shell Scripting in Verbindung mit AppleScript. möglich sein, Deine "Nuss zu knacken".

Nenn mir doch mal noch ein paar der Randbedingungen. Soll Dein iTunes auch die Ordnerstruktur verwalten? Ich hoffe nicht, denn das würde es schwieriger bis unmöglich machen. Greifen auch DOSen darauf zu?

also, randbedingungen sind folgende:
- zwei macs (beide MBP), die dementsprechend kleine HDs haben und von zwei personen genutzt werden. beide greifen auf die NAS-platte zu und wollen die mp3s hören. zudem hängt noch ein W2K rechner dran.

- tracks kommen NIE über itunes auf die platte. entweder werden sie über audiograbber (W2K) gerippt (geht um bestimmte ripp-einstellungen, die itunes nicht unterstützt. wenn mac, dann nur max, auch ein ripp-programm), oder sie werden direkt als mp3s angeliefert und in den folder geschoben. dementsprechend weiß itunes nichts von den tracks.

- wie gesagt, 200gb hin und herkopieren geht wegen kleiner hd nicht und auch wegen zeit

teste schon, ob ich über parallels und winamp gehen soll, das unterstützt auch den airport - aber mal ehrlich, das wäre doch echt schxxxx.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Okay... Ich denke mal drüber nach. Ich glaube, das geht recht einfach zu bewerkstelligen.
 

floorjiann

Strauwalds neue Goldparmäne
Registriert
18.01.07
Beiträge
639
Darüber würde ich mich auch sehr freuen, habe ein ähnliches Problem mit dem Sync zwischen iTunes und dem Musik Ordner
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
vergessen, darauf zu antworten: nein, itunes soll alles so lassen, wie es ist...
Gib doch mal bitte auf den beiden Mac Rechnern folgendes im Terminal ein:
Code:
grep Location './Music/iTunes/iTunes Music Library.xml' > rechner1.xml
zip -m rechner1.zip rechner1.xml
und schicke mir die zip Dateien mal an [email protected]

Damit kann ich sehen, wie die Pfadangaben bei deinem NAS aussehen.
 

schibulski

Gala
Registriert
12.02.07
Beiträge
53
hallo kulmer!

ich habe ein ähnliches problem wie du und glaube das meine Lösung auch bei dir fuktioniert.
Meine iTunes Library ist zwar nicht auf einer entfernten Platte, sondern auf der internen. Ich möchte die library jedoch mit allen Benutzern auf dem Rechner teilen. Problem bisher war, das jeder Benutzer seine eigene Library und Ordner hatte. Hatte der eine Benutzer ein Lied gekauft oder gerippt, musste der andere dieses manuell in seine Lib kopieren. Es gibt zwar eine Option "library mit anderen Benutzern gemeinsam nutzen", jedoch funktioniert dies nur, wenn der andere benutzer auch angemeldet ist. ist mir zu umständlich.

Meine Lösung:

Ich habe erstmal die ganze Library in einen Ordner gelegt, auf den alle Benutzer des rechners zugriffsrechte haben. Dann musst du in den Einstellungen von iTunes unter "Erweitert" die Option aktivieren, dass iTunes die Ordner verwaltet. Wichtig ist, dass die Option darunter "Beim hinzufügen in die Mediathek Dateien in den Ordner kopieren" DEAKTIVIERT ist. Sonst haste nachher immer alle MP3´s doppelt.
Jetzt kannst du immer wenn ein anderer Benutzer (oder in deinem Fall ein User an einem anderen Rechner) etwas an der Bibliothek geändert hat folgendes machen: In iTunes unter "Ablage->zur Mediathek hinzufügen..." den Ordner mit der Library markieren und "hinzufügen" anklicken. Jetzt synchronisiert iTunes den Ordner, und du hast eine aktuelle Bibliothek.

Ist zwar nicht ganz automatisiert, geht aber superschnell. Wichtig ist wie gesagt, dass die Optionen GENAUSO eingestellt sind, wie auf dem Screenshot zu sehen ist. Sonst kopiert der jedesmal beim hinzufügen alle deine MP3´s!

Hoffe das ist auch ne Notdürftige Lösung für dich. Apple sollte sich jedenfalls schleunigst Gedanken darüber machen iTunes und iPhoto mehruserfähig zu machen.
 

Anhänge

  • iTunes.jpg
    iTunes.jpg
    133,2 KB · Aufrufe: 182

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Ansonsten hätte ich hier noch einen ersten Ansatz, der noch nichts aktiv erledigt sondern nur anzeigt. Bitte mal testen:
Code:
on run
	set music_folder to choose folder with prompt "Where is your music stored" with multiple selections allowed
	set sanity_check to paragraphs of (do shell script "/usr/bin/perl <<-''
use strict;
use warnings;
use File::Find;
#
my $extensions= qr/(?i)\\.(?:mp3|m4a)$/;
#
# Search library and populate %in_lib
#
my $library= <DATA>;
$library=~ tr/\\015\\012//d;
#
my %in_lib;
#
open my $lib, '<', $library or die qq(Can't read $library: $!\\n);
while(<$lib>) {
	next unless m#<key>Location</key><string>file://localhost(/.*)</string>#;
	$_= $1;
	next unless /$extensions/;
	s/&/&/g;
	s/%(..)/pack('H2',$1)/ge;
	$in_lib{lc $_}=$_;
}
close($lib);
#
# search filesystem and populate %in_fs
# de-populate %in_lib
#
my @directories_to_search= map { tr/\\015\\012//d; $_; } grep m#^/#,<DATA>;
#
my %in_fs;
#
find(\\&check_soundfiles, @directories_to_search);
#
# print result
#
print scalar values %in_lib,qq(\\n); # missing files
print scalar values %in_fs,qq(\\n); # missing entries
print qq($_\\n) foreach sort values %in_lib;
print qq($_\\n) foreach sort values %in_fs;
#
# Helper
#
sub check_soundfiles {
	return if /^\\./;
	return unless /$extensions/;
	my $f= lc $File::Find::name;
	if ( $in_lib{ $f } ) {
		delete $in_lib{ $f };
	}
	else {
		$in_fs{ $f }= $File::Find::name;
	}
}
#
__DATA__" & (ASCII character 10) & ((POSIX path of (path to "cusr")) & "Music/iTunes/iTunes Music Library.xml") & (ASCII character 10) & POSIX path of music_folder)
	set missing_files to first item of sanity_check
	set missing_entries to second item of sanity_check
	if missing_files > 0 then choose from list items 3 thru (2 + missing_files) of sanity_check with prompt "missing these files (" & missing_files & ")"
	if missing_entries > 0 then choose from list items (3 + missing_files) thru -1 of sanity_check with prompt "files missing a library entry (" & missing_entries & ")"
	
end run
Das Script geht davon aus, daß in ~/Music/iTunes/ eine "iTunes Music Library.xml" liegt. Dies sollte der Normalfall sein. Wenn nicht -> Bitte sagen.
Den Code bitte in den Script Editor Übertragen und ausführen.
Dann den Ordner auswählen, in dem die MP3s liegen.

Nach einiger Zeit werden dann 0-2 Listen angezeigt.
Eine für alle Bibliothekseinträge denen eine Datei fehlt,
die zweite für alle Files (.m4a und .mp3) denen ein Bibliothekseintrag fehlt.

Wie gesagt: Zuerst mal nur eine Test.

@schibulski:
Was passiert, wenn ein User einen Datei aus der Bibliothek entfernt?

@kulmer:
Was soll passieren, wenn zu Einträgen keine passenden Dateien gefunden werden?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Bonobo

schibulski

Gala
Registriert
12.02.07
Beiträge
53
@ skeeve:

wenn ein user eine Datei entfernt (und auch physikalisch löscht) findet iTunes diese Datei beim nächsten "zur Mediathek hinzufügen..." nicht mehr und somit taucht die Datei dann auch in der eigenen Playlist nicht mehr auf. Wie es sich verhält, wenn ein User eine Datei wirklich nur aus der Library löscht, ohne die Datei selbst zu löschen, weiß ich nicht. Hab ich noch nicht getestet.

Edit: Sorry, wenn ein User Datein löscht, tauchen Sie beim anderen User mit einem "!" auf. So hat man sogar einen Überblick darüber, welche Dateien gelöscht wurden.

Und wenn mann ein Lied entfernt, die Datei aber im Music Ordner behält, ist sie beim nächsten Ausführn von "zur Mediathek hinzufügen..." wieder drin.
 
Zuletzt bearbeitet:

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
guten morgen schibulski und skeeve,

danke auf jeden fall jetzt schon für die mühe, ich werde gleich beide wege ausprobieren und mich asap melden.

ich bin ehrlich gesagt auch verwundert, warum apple das problem ignoriert (das gefühl habe ich nämlich). natürlich sind die fähigkeiten von itunes für die meisten user völlig ausreichend, vor allem, wenn sie immer auf dem von apple vorgegebenen weg bleiben - also cd immer nur über itunes rippen und musik nur aus dem store kaufen. aber ein wenig entgegenkommen wäre schon ganz nett gewesen, zumal wir ja hier nicht über eine absolute besonderheit reden, sondern über ein recht weit verbreitetes bedürfnis (wenn man so im web die foren durchsucht). meist sind es ehemlige windows user, so wie ich, die es gewohnt sind, daß sie dem programm vorgeben, wie es die datenbank zu verwalten hat und nicht umgekehrt.

der hintergrund ist - das nur der vollständigkeit halber - folgender: bis letztes jahr lief meine gesamte musikdatenbank über winamp auf einem pc. ich habe alle meine daten in einige wenige ordner unterteilt, einige grob nach genre (indie, lounge, soundtracks, pop, etc), einen als untagged und einen als streamripp benannt. solange die tags nicht halbwegs vollständig sind, bleiben neue tracks in den beiden letzteren ordnern und werden nicht wiedergegeben (ich muß nur ein/zwei programme drüberlaufen lassen, die z.b. aus titel die tags zu vervollständigen oder zu einem interpreten und track auch das richtige album zu finden - das geht aber fast schon automatisch).

nun habe ich zuerst geschaut, inwieweit man itunes so einstellen kann, daß intelligente playlists auf ein inhalt eines bestimmten ordners zugreifen und sich updaten. dann hätte ich in itunes immer meine aktuellen playlists (nämlich indie, pop, etc), die ich dann in shuffle hören kann, und ich könnte trotzdem die minimale ordnersturktur aufrecht erhalten, die es mir erlaubt, über den finder schnell und unkompliziert einen oder mehrere ordner auch mal auf eine andere externe festplatte zu kopieren und mit zu nehmen. dies ist aber leider nicht möglich, weil die playlists nur auf die tag-infos zugreifen und sie danach sortieren, nicht aber nach pfad. auch hierüber gab und gibt es einige diskussionen im web, man braucht nur itunes, smart playlist & folder in google eingeben.

deshalb war mein nächster ansatz folgender: ich verändere die tags ALLER tracks in einem ordner, so daß sie z.b. im feld kommmentar (worauf ich keine wert lege, was da drin steht) alle "LOUNGE_FOLDER" o.ä. stehen haben. dann die smart playlist so verändern, daß tracks mit "LOUNGE_FOLDER" im feld kommmentar automatisch zu der smart playlist "LOUNGE" hinzugefügt wird. funktioniert soweit sehr gut. nur wenn neue dateien hinzukommen, oder die tags verändert werden, werden die dateien nicht erkannt, da itunes eben seinen folder nichht überwacht.

wie gesagt, für windows gibt es eine kleine applikation, den itunes library updater, der das macht (weiß aber nicht, wie zuverlässig), und ich hoffe ja darauf, daß wenn itunes das feature nicht bald einbaut, sich wenigstens jemand findet, der ein ähnliches programm für den mac erstellt. und ich denke, ich wäre nicht der einzige, der bereit wäre, auch ein paar euro dafür auszugeben.

so, soweit also die bisherigen überlegungen (mußte mal raus, schlage mich seit wochen allein mit dem problem herum). ich check gleich eure beiden wege. bis gleich. k.
 

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
ok, hat etwas gedauert, aber hier die ersten ergebnisse.

@skeeve:
hab das apple script ausgeführt, werde dann aufgefordert, den musikordner zu wählen, dann jedoch taucht ein apple script fehler auf, und der spaß ist zu ende. ich hab's mal kopiert, worüber er meckert (sind für mich eh böhmische dörfer):


sh: -c: line 3: syntax error near unexpected token `('
sh: -c: line 3: `/usr/bin/perl <<''
use strict;
use warnings;
use File::Find;
#
my $extensions= qr/(?i)\.(?:mp3|m4a)$/;
#
# Search library and populate %in_lib
#
my $library= <DATA>;
$library=~ tr/\015\012//d;
#
my %in_lib;
#
open my $lib, '<', $library or die qq(Can't read $library: $!\n);
while(<$lib>) {
next unless m#<key>Location</key><string>file://localhost(/.*)</string>#;
$_= $1;
next unless /$extensions/;
s/&/&/g;
s/%(..)/pack('H2',$1)/ge;
$in_lib{lc $_}=$_;
}
close($lib);
#
# search filesystem and populate %in_fs
# de-populate %in_lib
#
my @directories_to_search= map { tr/\015\012//d; $_; } grep m#^/#,<DATA>;
#
my %in_fs;
#
find(\&check_soundfiles, @directories_to_search);
#
# print result
#
print scalar values %in_lib,qq(\n); # missing files
print scalar values %in_fs,qq(\n); # missing entries
print qq($_\n) foreach sort values %in_lib;
print qq($_\n) foreach sort values %in_fs;
#
# Helper
#
sub check_soundfiles {
return if /^\./;
return unless /$extensions/;
my $f= lc $File::Find::name;
if ( $in_lib{ $f } ) {
delete $in_lib{ $f };
}
else {
$in_fs{ $f }= $File::Find::name;
}
}


@schibulski:

dieser workaround ist tatsächlich machbar. und es scheint auch der einzige weg zu sein, wie man momentan das problem lösen kann. ich habe einen testfolder angelegt und mal geschaut, was passiert. es ist mir zwar echt unangenehm, daß itunes meine dateien umbenennt und herumsortiert, aber wenigstens bleiben die dateien ja in den jeweiligen von mir erstellten hauptordnern (also indie, lounge etc) und itunes fummelt nicht eigenmächtig an den tags herum, was ja die eigentliche benennung des tracks ist. also wird zum glück eine datei, auch wenn sie umbenannt wurde, z.b. von dem mp3 player in meinem handy richtig erkannt (weil es eben die tags liest und nicht den dateinamen). kann mich also mit der itunes verwaltung arrangieren...

was wirklich toll ist, daß auch nach dem "madiathek hinzufügen..." meine trackbewertungen alle noch da sind! wenn ich das alles einfach nur neu importiert hätte, wären die natürlich weg. also das ist schon mal super.

und im zusammenspiel mit den gestern erwähnten smart playlist (ordnername im kommentarfeld), werden die tracks aus den jeweiligen foldern automatisch in die richtige playlist gelegt, als ob itunes die ordner selber scannen würde.

das einzige manko ist mal wieder die zeit... mein testordner hatte etwa 40gb. wenn ich den wieder zur mediathek hinzufüge, dauert es etwa 5 minuten, bis er alle tracks upgedated hat, das ist ja noch völlig ok. problematisch wird es, wenn es anfängt, die cover zu laden. die sind zwar alle in tags gespeichert, dauert aber trotzdem dann locker ne stunde, bis er damit durch ist (hier fast 6000 verschiedene alben. testordner war übrigens auf der internen platte, also kein netzwerk-flaschenhals). und dann beginnt itunes seine unsägliche info-geschichte zur "unterbrechungsfreien wiedergabe" - auch nochmal ne stunde. die zeiten sind übrigens geschätzt, ich hab das laden jeweils recht schnell abgebrochen, könnte also noch länger dauern.

trotzdem: das scheint die bisher einzige funktionierende lösung zu sein. und bis auf den zeitfaktor ist sie auch gut umsetzbar - man muß seine library ja auch nicht jeden tag updaten...

ich probier hier noch so ein bisschen vor mich hin, wenn mir noch was ein/auffällt, melde ich mich, oder hat jemand noch einen anderen ansatz?

nochmal danke für die hilfe!

grüße!
k.
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
ich meld mich dann auch mal zu wort.ich hab fast das gleiche problem. bei mir greifen ein ibook und ein mac mini auf eine nas zurück, auf der meine tracks gespeichert sind.
ich lasse die ordnerstruktur auf der nas von itunes verwalten, ich rippe cds eh nur noch damit...

wie kann ich jetzt die library auf beiden rechnern synchron halten? ich hab mal versucht, die aktuellere library auf dem anderen rechner über die unaktuellere drüberzukopieren, aber itunes scheint das ignoriert zu haben.

vllt kann man ja das script von skeeve nen bissl abändern??
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Mein Skript ist ja noch nicht fertig. Ich habe den Feler pben korrigiert. Es ist mal wieder einer dieser unerklärlichen "Copy & Paste" Fehler. Wenn ich ein "-" zwischen "<<" un '' einbaue. klappt's.

Allerdings, LaTonka, ist es bei meinem Ansatz so, daß sich die einzelnen iTunes Installationen nur die Dateien teilen werden. Jeder Rechner für sich hat eine eigene Wertung und seine eigenen Playlisten.
 

kulmer

Golden Delicious
Registriert
16.07.07
Beiträge
10
hast du mal probiert, wie schibulski vorgeschlagen hat? itunes von beiden rechnern die verwaltung übernehmen lassen. wenn du einen rechner (oder beide) auf den aktuellen stand bringen willst, dann itunes jeweils über "zur mediathek hinzufügen..." aktualisieren.
aber keine ahnung, ob wertungen mit synchronisiert werden, wohl eher nicht. aber die tracks.

k.