• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

AppleScript zum umwandeln von Bildern/Automator workflow import in iTunes

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Hey,

So nun verzweifle ich mal wieder am AppleScript^^

Code:
set jpegFilename to ((path to home folder) as string) & ":testbild:jpg:test.jpg"
set jpegFile to (POSIX file jpegFilename)


tell application "Image Events"
    open myImage(jpegFile as file)
    
    save myImage as PICT in (((path to home folder) as string) & ":testbild:pcit:test.pict")
    close myImage
end tell

Sollte ja eigentlich so funktionieren jedoch bekomme ich:

Code:
error "«data furl5A617261746875737472613A3A7465737462696C643A6A70673A746573742E6A7067» kann nicht in Typ file umgewandelt werden." number -1700 from «data furl5A617261746875737472613A3A7465737462696C643A6A70673A746573742E6A7067» to file

Aus welchem Grund auch immer.

Da das nicht funktioniert habe ich das mal in Automator gemacht was ja recht simpel ist:

1. "Nach Finder Objekten Fragen" -> das *.jpg auswählen.
2. "Bildtyp ändern als PICT"

Ganz nebenbei Automator wirft nichtmal nen *.pict ab sondern ein *.pct, sollte aber aufs gleiche hinauslaufen


Nehmen wir einmal an das dieses PICT File "funktionstüchtig ist"

Dann sollte dieses AppleScript laufen:

Code:
tell application "iTunes"   
    set data of artwork 1 of (current track) to read file (((path to home folder) as string) & "testbild:pict:test.pct") from 513 as picture
end tell

Um damit das Cover des aktuellen Titels zu setzen.

Jedoch wirft mir der nette Editor diesen Fehler zurück:

Code:
error "„iTunes“ hat einen Fehler erhalten: Es ist ein Fehler „-206“ aufgetreten." number -206
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo!

Code:
set jpegFilename to "Richtiger Pfad…"

tell application "Image Events"
--launch
set x to open jpegFilename
save x as PICT in "…ohne ein : vor testbild!"
close x
end tell

und ah.. deshalb als .pict.
Um es ab dem berühmten 513ten Byte zu lesen :oops:

Du hast iTunes 10.2? Dann lies das:

Several users have reported, and I can verify, that an AppleScript routine used to apply image data to a track as artwork fails with an error -206 when used on iTunes 10.2. Essentially, the error is tripped when the following code–or similar–is run; theTrack is a reference to an iTunes file track and thePictFile is a valid PICT image file:

set data of artwork 1 of theTrack to (read (thePictFile as alias) from 513 as picture)

Gruß
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Danke für deine Antwort!

Zum Cover setzen:
Gibt es da für einen Workaround? Oder funktioniert das jetzt ganz anders? Das wäre echt schade :/

Edit: Die Quelle wäre auch noch ganz gut zu erfahren
 
Zuletzt bearbeitet:

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Dies funktioniert bei mir:

Code:
set imageFile to "/Users/Klaus/Desktop/Bildschirmfoto.png" as POSIX file

tell application "Image Events"
	launch
	set myImage to open (imageFile as alias)
	save myImage as PICT in "/Users/Klaus/Desktop/Bildschirmfoto.pict"
	close myImage
end tell
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Dies funktioniert bei mir:

Code:
set imageFile to "/Users/Klaus/Desktop/Bildschirmfoto.png" as POSIX file

tell application "Image Events"
	launch
	set myImage to open (imageFile as alias)
	save myImage as PICT in "/Users/Klaus/Desktop/Bildschirmfoto.pict"
	close myImage
end tell

Erzeugt bei mir eine PICT Datei ja, die aber nicht mir Vorschau zu öffnen ist. Die von meinem Workflow mit Automator hingegen schon.
Bzw ich kann es nur mit Vorschau in 32 Bit öffnen.

Ich habe mich bei den Apple Scripts stark an dem hier gehalten: http://www.liquidx.net/artworkwithapplescript/
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Die Quelle?
Wenn jemand immer das neueste zu iTunes und AppleScript weiß und postet, dann ist das wer?
Genau! Doug Adams!

Das Skript von toc-rox sollte genau so gut funktionieren, wie meines :)

Wie du schon bemerkt hast, kann PICT nur im 32-Bit-Modus von Vorschau geöffnet werden.
Abhilfe?
Nicht mehr dieses total aktuelle Format nutzen, sondern png oder was auch immer.

Code:
tell application "iTunes"
	set data of artwork 1 of (current track) to read file "x:y:z:xyz.png" as picture
end tell
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Aber es steht doch überall das man das erst konvertieren mus in ein pict File?!
Natürlich würde ich iTUnes lieber mit jpg, png etc vollknallen statt diesen Umweg zu nehmen.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Probiere es doch einfach mal :-D
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Okay probiert getan bei 4 von 5 mal bleibt der Script Editor hängen und CPU steigt auf 100%.

Doch warums beim 5. mal funktioniert ohne eine Änderung vorgenommen zu haben ist fraglich
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Nungut jetzt funktioniert es immer lag wohl am Editor.

Schön Danke!

Und jetzt die letzte doofe Frage zu dem Script.

Auf der Manpage auf von osascript habe ich das entdeckt

Code:
on run argv
return "hello, " & item 1 of argv & "."
end run

% osascript a.scpt world
hello, world.

Meine Version davon lautet also:

Code:
on run argv
    tell application "iTunes"
        set data of artwork 1 of (current track) to read file argv as picture
    end tell
end run

Starten tu ich das in etwa so im Terminal

Code:
osascript /Verz/Zum/Script/Name.scpt :Verz:Zum:Bild:Bild.jpg

Vor Verz muss ein Doppelpunkt stehen sonst geht es garnicht. Auch nicht wenn ich explizit den Namen ins Script schreiben würde ohne den Doppelpunkt am Anfang mit funktionierts.

Doch warum funktioniert mein aufruf nicht

-> iTunes got an error: File file :Verz:Zum:Bild:Bild.jpg wasn’t found. (-43)

Das Bild ist aber an der richtigen Stelle.
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
HFS Pfade sind nicht relativ.
Übergib dem Script ein POSIX-Pfad und änder dein Code so
Code:
on run argv
    set imgFile to posix file argv
    tell application "iTunes"
        set data of artwork 1 of (current track) to read file imgFile as picture
    end tell
end run

So müsste es klappen, auch mit relativen POSIX-Pfaden.
 
  • Like
Reaktionen: Loooki

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo!

Deine Pfade stimmen immer noch nicht.
Noch mal: Kein AppleScript Pfad beginnt mit einem :

Ausserdem würde ich mich -- wenn ich keine Vorkenntnisse habe -- genau an das halten, was ich lese.
Es funktioniert zwar auch so, aber die Umsetzung des Beispiels müsste konsequenterweise read file (item 1 of argv) lauten


Upps: Gerade gesehen, dass fyysh gepostet hat:
Ja klar. Der Pfad muss stimmen und darf nicht relativ sein (oder aber nach deinem Beispiel umgesetzt sein)
Und, um Probleme zu vermeiden sollte er maskiert sein.

Gruß
 
  • Like
Reaktionen: Loooki

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
HFS Pfade sind nicht relativ.
Übergib dem Script ein POSIX-Pfad und änder dein Code so
Code:
on run argv
    set imgFile to posix file argv
    tell application "iTunes"
        set data of artwork 1 of (current track) to read file imgFile as picture
    end tell
end run
So müsste es klappen, auch mit relativen POSIX-Pfaden.

Das funktioniert problemlos, danke!

@ sedna in dem Script welches ich hatte funktionierte es nur mit einem ":" als erstes Zeichen, das man das nicht macht ist ne andere Geschichte. Warum das per Parameter aber nicht funktioniert ist mir ein Rätsel - aber seis drum.

In diesem Fall sage ich einfach mal: es funktioniert und gut ist.


AppleScript erinnert mich an Pascal nur das man auf Programme zugreifen kann als zusätzliches Feature. Und wenn man schon Pascal verabscheut dann wird das nicht (viel) besser ^^

Ein vernünftiger Editor hätte mir also auch geholfen. (Eclipse Plugin wäre die Perfektion)
Aber nichtmal Debuggen kann man oder irre ich mich?
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Ah. Stimmt, das "Problem" mit dem Doppelpunkt hattest du geschrieben. Und im nach hinein verstehe ich auch deine Aussage erst richtig.
Schön, dass es jetzt klappt. Und nur der Vollständigkeit halber (beachte auch die Maskierung):

osascript /Verz/Zum/Script/Name.scpt "Verz:von der Festplatte:bis:Zum:Bild:Bild.jpg"

Ein Debugger, wie du dir ihn vorstellst, hätte dir hier eh Null geholfen, da der Fehler wohl in deinem Shell Skript lag.


Gruß
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Ein Debugger, wie du dir ihn vorstellst, hätte dir hier eh Null geholfen, da der Fehler wohl in deinem Shell Skript lag.

Und trotzdem würde er mir bei den bereits geschrieben Scripten sehr helfen.
Oder eine XCode integration wäre sicherlich auch hilfreich ;)
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
Naja, aber wenn du in XCode schreiben willst, dann lieber gleich ObjC. Da geht mehr. Oder wegen mir ASObjC - aber das zu lernen ist ja eigentlich Humbug. :D

AS kann man schon debuggen. Mit dem Applescript-Editor und dem Event Viewer (cmd+alt+L glaub ich - oder aus der Menüleiste), aber sehr oft muss man sich mit "Log" behelfen und sich eigene kleine debug-funktionen schreiben. Optimal ist das nicht, aber auch nicht unmöglich. :)
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Nein, nein mit XCode möchte ich eigentlich auch nchts zutun haben aber würde dort Apple Script laufen würde ichs dort lieber benutzen. Gäbe bestimmt ein paar mehr Funktionen.

Ich benutze Eclipse den für mich besten Editor. Aber XCode habe ich auch drauf wegen den Developer Tools etc.

Den Event Viewer schau ich mir mal an.

-> Habe nen Tool gefunden zum "richtigen" debuggen kostet allerdings Geld -> also nein danke:)
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
AppleScript zum umwandeln von Bildern/Automator workflow import in iTunes
Extra für Dich habe ich mich durch eine lange Ordnerstruktur geklickt und ein Zip mit dem Namen "Tune•Instructor 1.0" aus dem Jahre 2005 geöffnet.

Dort wird behauptet:
Code:
tell application "Image Events"
	launch
	set tempBild to open sucherTrackCoverA
	save tempBild as PICT in file pfadZuCoverOrdner
	close tempBild
end tell

tell application "iTunes"
	try
		set file_ref to open for access coverTrackPruefen
		set file_of to read file_ref from 513 as picture
		close access file_ref
		set data of artwork 1 of (naechterTrack) to file_of
		set file_of to ""
	on error m
		try
			close access file_ref
			set file_of to ""
		end try
	end try
	
end tell

... und das funktioniert sogar immer noch :)
Sollte man dann aber schöner schreiben und die Variablennamen besser vergeben.

Viele Grüße
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Extra für Dich habe ich mich durch eine lange Ordnerstruktur geklickt und ein Zip mit dem Namen "Tune•Instructor 1.0" aus dem Jahre 2005 geöffnet.

Dort wird behauptet:
Code:
tell application "Image Events"
    launch
    set tempBild to open sucherTrackCoverA
    save tempBild as PICT in file pfadZuCoverOrdner
    close tempBild
end tell

tell application "iTunes"
    try
        set file_ref to open for access coverTrackPruefen
        set file_of to read file_ref from 513 as picture
        close access file_ref
        set data of artwork 1 of (naechterTrack) to file_of
        set file_of to ""
    on error m
        try
            close access file_ref
            set file_of to ""
        end try
    end try
    
end tell
... und das funktioniert sogar immer noch :)
Sollte man dann aber schöner schreiben und die Variablennamen besser vergeben.

Viele Grüße

Das ist nahezu mein alter Code(Nicht den hier geschrieben, der ist vereinfacht) und dieser scheint, wie oben schon geschrieben, nichtmehr mit der aktuellen Verison zu funktionieren :/
 
Zuletzt bearbeitet: