Apple Script Lame

Psychopatient

Mitglied
Thread Starter
Dabei seit
13.01.2011
Beiträge
26
Reaktionspunkte
0
Guten Abend,

eigentlich ist mein kleines Problem gar nicht so kompliziert. Ich möchte Dateien in einem Ordner (m4a) mittels lame in mp3 formatieren. Vorher möchte ich gefragt werden, wo der Ordner ist. Folgendes Script habe ich gebastelt:

Code:
set zielOrdner to (choose folder without invisibles) as string
tell application "Finder"
	set Audio to select (files of entire contents of folder zielOrdner whose name extension is "m4a")
	do shell script "/opt/local/bin/lame -b 160 ' " & Audio & " ' ' " & zielOrdner & " ' "
end tell

Eigentlich ziemlich simpel, nur irgendwie seh ich meinen Fehler nicht. Eventuell kann mir jemand von euch schon beim ersten Blick sagen, was da schief hängt.
Achso abschließend würde ich die m4a´s gerne löschen wollen
 
lame nimmt wohl kaum einen ordner von applescript an, da wirst du wohl eine schleife machen müssen, wo du lame für every item in audio aufrufst.
 
Vielen Dank für die schnelle Antwort.

Schade, ich dachte doch ernsthaft, dass es so einfach wäre.
Wie genau würde eine solche Schleife aussehen?
 
Code:
on open DropList
	repeat with objectRef in DropList
		do shell script "/opt/local/bin/lame -b 160 " & quoted form of POSIX path of objectRef
	end repeat
end open
so kannst das ganze als droplet machen.
 
Verstehe, danke.
Aber ein Droplet ist für mich nur bedingt sinnvoll, da die mp3-Konvertierung nur ein Teil eines größeren Arbeitsschrittes ist, den ich gerne automatisiert hätte.
(Playlist aus iTunes exportieren, m4a´s in entsprechende nach Artist und Album geordnete Ordner verschieben-->dann die Konvertierung und Löschung der m4´a-->Abschließend sollen die MP3´soch mal verschoben werden.)
Der erste Teil ist schon fertig, jetzt häng ich halt gerade an der Konvertierung.
Gibt es nicht noch einen anderen Weg?
 
die repeat schleife musst du nur leicht abänderen, um "deine" liste dort abzuarbeiten...
 
Code:
set zielOrdner to (choose folder without invisibles) as string
tell application "Finder"
	set Audio to select (files of entire contents of folder zielOrdner whose name extension is "m4a")
	repeat with Audio in zielOrdner
		do shell script "/opt/local/bin/lame -b 160 " & quoted form of POSIX path of Audio
	end repeat
end tell
Also entweder starr ich heute schon zu lange auf Bildschirme oder ich blicks wirklich noch nicht.
Bekomme Fehler: do shell script "/opt/local/bin/lame -b 160 '/S'"
--> error number -10004
 
du solltest dir noch mal angucken wie man repeat with nutzt…
an sich willst du ja jedes object in Audio haben.
 
Okay, bin jetzt soweit. Nur leider sagt er mir, dass das Format nicht unterstützt wird? Lieg ich falsch in der Annahme, dass lame aus m4a auch mp3 macht?
 
lame selber nimmt nur wav, aif oder mp3 selber…
musst du halt ein anderes tool nehmen zum pipen auf wav/aif davor schalten.
oder halt ffmpeg mit lame bzw einen anderen encoder der lame nutzt und m4a liest.
 
Hab mich für faad entschieden. Ich weiß nur nicht, wie ich es einspanne
Code:
set zielOrdner to (choose folder without invisibles) as string
tell application "Finder"
	set Audio to select (files of entire contents of folder zielOrdner whose name extension is "m4a")
	repeat with Audio in zielOrdner
		do shell script "/opt/local/bin/faad -o - | /opt/local/bin/lame -b 160 " & quoted form of POSIX path of zielOrdner
	end repeat
end tell
 
dein repeat ist immer noch falsch…
du musst faad das file geben, nicht lame, lame nimmt mit - doch die pipe…
dafür musst du lame dann wohl ein outfile geben…
 
Also, ich weiß absolut nicht welche Current Variable ich in den Repeat-Teil einsetzen soll. Als "Liste" würde ich "Audio" angeben
 
so müsste es gehen, eventuell muss noch bei lame das outfile anpassen.

Code:
set zielOrdner to (choose folder without invisibles) as string
tell application "Finder"
    set Audio to select (files of entire contents of folder zielOrdner whose name extension is "m4a")
    repeat with object in Audio
        set theFile to object as text
        do shell script "/opt/local/bin/faad -o - " & quoted form of POSIX path of theFile & "| /opt/local/bin/lame -b 160 -"
    end repeat
end tell
 
Vielen Dank.
leider läuft es noch nicht ganz so rund, da ich ein kryptisches Feedback bekomme:
§ 4ÄLAME3.99.5UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.99.5UUUUUUUUUUUUUUˇ˚¢d i

Wenn ich aber möchte, dass der Output an die selbe Stelle kommt, wo auch der Input liegt, lass ich das Outfile doch einfach frei oder?! (Also so wie im Skript).
 
normal schon, da aber der input stdin ist, wird wohl stdout genommen und deswegen wohl der output da.
sollte sich aber leicht fixen lassen:
Code:
do shell script "/opt/local/bin/faad -o - " & quoted form of POSIX path of theFile & "| /opt/local/bin/lame -b 160 - " & quoted form of POSIX path of theFile & ".mp3"
 
ich glaubs ja nicht! Das ist der absolute Wahnsinn! juhuuu
Hab vielen lieben Dank für Dein Bemühen und Deine Zeit.
 
Zurück
Oben Unten