-
Ok gerne, ich wollte erstmal bloß höflich anfragen. Infos inside:
Eigentlich ganz harmlos.
Ich habe eine Ordneraktion in Automator, die alle Files (mp3), die ich in einen bestimmten Ordner werfe, in m4a konvertiert und dann in iTunes importiert.
Anschließend werden die Files aus dem Ordner gelöscht.
Das alles macht ja die Automator-Aktion „Import Files into iTunes“.
Das Problem ist nur: wenn es zu viele Files sind und alles länger dauert, als 2 Minuten, dann gibts einen Timeout und die Files werden zwar sauber in iTunes importiert, der Ordner wird aber nicht geleert.
Die Frage ist also: gibt es eine Möglichkeit, die eingebaute Automator Aktion so zu konfigurieren, dass der automatische Timeout umgangen wird?
Du hattest die Frage schonmal vor Jahren ansatzweise in einem anderen Forum beantwortet, aber ich komm irgendwie nicht weiter.
Man kann die Aktion ja nicht direkt bearbeiten.
Hast Du eventuell eine Idee? -
Ja, du musst die iTunes action durch eine AppleScript action ersetzen…
in der man das Timeout kontrollieren kann.
Werden die Dateien einer bestimmten Playlist hinzugefügt? -
Oh, ich ahnte schon: das wird wohl wieder kompliziert :-(
Und: nein, die Dateien werden einfach mit ihren Tags (Künstler, Album etc.) in meine iTunes Library importiert. -
Ist gar nicht kompliziert
Ziehe eine AppleScript action in die Spalte mit den actions direkt vor oder nach der iTunes action und ersetze den kompletten code durch
Show Plain Text- on run {input, parameters}
- with timeout of 3600 seconds
- tell application "iTunes" to add input
- end timeout
- return input
- end run
und klicke auf das Hämmerchen
Dann lösche die iTunes action und speichere den Workflow
Das ist alles -
Vielen Dank! Probier ich gleich morgen mal aus. Mein (Irr)weg war sowas:
on adding folder items to my_folder after receiving the_files
repeat with i from 1 to number of items in the_files
set theCurrentFile to item i of the_files
if (name extension of (info for theCurrentFile)) = "mp3" then
tell application "iTunes"
launch
try
set this_file to (item i of the_files)
add this_file
end try
end tell
end if
end repeat
end adding folder items to
Das wollte ich irgendwie mit dem iTunes Import Workflow verheiraten - und natürlich den Timeout einbauen ...
Aber Deine Lösung scheint mir viel eleganter.
Vielen Dank nochmal! -
Diese AppleScript action importiert die input Dateien in iTunes, …
konvertiert MP3 zu AAC (wenn notwendig) und löscht die MP3 Dateien in iTunes (in der Bibliothek und im Finder).
Es löscht aber nicht die input Dateien.
Falls ein Fehler beim Konvertieren auftritt, wird ein Dialog angezeigt und die importierte MP3 Datei nicht gelöscht.
Show Plain Text- on run {input, parameters}
- with timeout of 3600 seconds
- tell application "iTunes"
- set importedTracks to add input
- set currentEncoder to current encoder
- set current encoder to encoder "AAC encoder"
- set tracksToDelete to {}
- repeat with aTrack in (get importedTracks)
- if kind of aTrack is not "AAC Audio file" then
- try
- set aacTrack to convert aTrack
- set end of tracksToDelete to contents of aTrack
- on error e
- display dialog "error: " & e
- end try
- end if
- end repeat
- end tell
- repeat with aTrack in tracksToDelete
- tell application "iTunes"
- set filePath to location of aTrack
- delete aTrack
- end tell
- tell application "Finder" to delete filePath
- end repeat
- tell application "iTunes" to set current encoder to currentEncoder
- end timeout
- return input
- end run
-
Das sieht seeeeehr gut aus. Hab tausend Dank für Deine Mühe!
Ich hab mich schon in die Semantik Deines Skripts vertieft, um zu verstehen, wie das alles zusammenspielt.
Und um zukünftig nicht wieder wegen jeder Kleinigkeit nachfragen zu müssen.
Hab nochmals vielen Dank für alles!
Was wäre dieses Forum ohne stetig hilfsbereite Menschen wie Dich ...
-
-
-
-
-
-
-