AppleScript zum Auslesen des Dateidatums im vorgegebenem Format

maccoX

maccoX

Aktives Mitglied
Thread Starter
Dabei seit
15.02.2005
Beiträge
16.030
Reaktionspunkte
6.047
Hallo,

ich bräuchte eure Hilfe, ich brauch ein AppleScript, welches von der ausgewählten Datei das Dateierstellungsdatum ausliest es so formatiert:
2021-10-30 10:50:50

Das soll dann in der Zwischenablage landen und Programm xy in den Vordergrund geholt werden.

Ein zweites AppleScript soll dann in diesem Programm xy einen Menüeintrag im Menü klicken der kein Shortcut hat, das Datum einfügen und Enter klicken.

Hintergrund: Ich muss das Datum von einigen Filmdateien auf andere Filmdateien als EXIF Aufnahmedatum übertragen.

Ist das irgendwie möglich?
 
Kopier doch die Metadaten einfach rüber.
Ffmpeg oder so.
 
  • Gefällt mir
Reaktionen: mausfang
Ist das irgendwie möglich?
Ja, ist grundsätzlich möglich ... hängt auch von der Skriptbarkeit der Zielanwendung ab. Falls die App AppleScript nicht unterstützt, dann über UI-Scripting umzusetzen ... gibt Tools, mit denen man „herausfinden“ kann wie z.B. der Menüpunkt aufgerufen werden kann ...

Das sind zwei, drei Stunden Entwickler-Zeit ... je nach Erfahrung mit Apple-Script und UI-Scripting bzw. den entsprechenden Tools (z.B. UI Browser) ...
 
Ach herrje... ok das ist viel Aufwand. Tu mich mit AppleScript verdammt schwer, find das ziemlich übel. Kann man das nirgends gescheit nachlesen wie das geht und was man für Möglichkeiten hat?

ffmpeg sagt mir nichts und die Website ist nicht besonders aussagekräftig aber kann ich mir mal anschauen, danke.
 
Ich hab mich die letzten Wochen intensiver damit beschäftigt ... auch mit UI-Scripting ...

Verschiedene Bücher im Internet, Webseiten zu Mac-Automatisierung, Stackoverflow-Threads dazu angeschaut ...

Was meine Einschätzung zur Einarbeitung in das von Dir beschriebene Thema eingeht: 40 oder 50 Stunden Recherche und ausprobieren ...
 
  • Gefällt mir
Reaktionen: dg2rbf
Oha :)

Werd mir dann irgend eine andere Lösung suchen müssen, schade das mit Automator so extrem wenig möglich ist.
 
Was ich denke was ich aus der Erfahrung die ich gemacht habe für Dein Vorhaben brauchst:

1. Einen AppleScript-Handler (aka Funktion in anderen Programmiersprachen), der dir zu einem übergebenen File das Erstelldatum in der entsprechenden Form übergibt. Dazu kannst Du ggf. mit Recherche im Netz eine AppleScript-Library finden, die Dir das Datum entsprechende formatiert.

2. Eine kleine GUI / oder mindestens einen Auswahldialog für das entsprechende File. (By the way ... wo ich es schreibe ... willst Du das File-für-File ablaufen lassen, oder als Stapel für ein Verzeichnis).

3. Dann für die Anwendung an die Du das Datum übergeben willst (welche ist das denn?) musst Du herausfinden, wie Du den entsprechenden Menüpunkt ohne tatsächliches Klicken auslösen kannst ... So was ist möglich ... es ist nicht ganz einfach dafür AppleScript-Code zu finden mit dem man das herausfindet. Die Software "UI Browser" von pfiddlesoft kann so was (und ist als Testversion dafür zu gebrauchen, da sie da nicht eingeschränkt ist) ...

Das hast Du zwar im Eingangspost so grundsätzlich schon so beschrieben ... ich wollte Dir das nur noch mal ein wenig mit Details anreichern.

Lohnt sich der Aufwand das zu entwickeln wirklich? Edit: Wenn Du es hunderte oder tausende male machen müsstest?

Meiner Meinung nach je nach Erfahrung:

* Punkt 1) 30 - 60 Minuten Entwicklungszeit
* Punkt 2) 30 Minuten Entwicklungszeit
* Punkt 3) 60 Minuten Entwicklungszeit

Zeit zum Testen ist da noch nicht berücksichtigt ... es passieren immer Dinge, an die man erst mal nicht gedacht hat, und die das Ganze verkomplizieren.

Ich bin kein erfahrener Entwickler ... vielleicht kommt noch jemand ums Eck, die bereits "fertigen" Code hat, den man dafür anpassen kann.
Sonst müsstest Du Dir das zusammensuchen in entsprechenden Ressourcen zu AppleScript im Netz.
 
Vielleicht kommst Du so an Dein Menubar item ...

AppleScript:
tell application "Microsoft Remote Desktop"
    -- Applikation starten
    activate
    tell application "System Events"
        tell process "Microsoft Remote Desktop"
            set xxx to name of every menu item of menu 1 of menu bar item "Window" of menu bar 1
        end tell
    end tell
end tell

Microsoft Remote Desktop natürlich an den beiden Stellen mit der Bezeichnung Deiner Zielanwendung ersetzen.

Im Ergebnis-Fenster des Skripteditors siehst Du dann die Struktur des Menübaums ...
 
Danke mausfang, werde mir das alles mal ansehen.
 
  • Gefällt mir
Reaktionen: mausfang
Du könntest Dir auch mal das anschauen:

https://www.alfredforum.com/topic/4990-safari-reader-to-pdf/?do=findComment&comment=30483


Hier sieht man wie mittels UI-Scripting Menüs getriggert werden können und Hotkeys abgesetzt werden:

Edit: Habe das Script gerade noch mal angepasst, damit es mit einem "deutschen Safari" läuft:

AppleScript:
-- Safari

tell application "System Events"
    tell application process "Safari"
        set frontmost to true
       
        repeat until window 1 exists
        end repeat
       
        # Render page in Safari Reader
        keystroke "r" using {command down, shift down}
       
        delay 1
       
        -- Print; wait until the sheet is visible  
        click menu item "Drucken …" of menu 1 of menu bar item "Ablage" of menu bar 1
       
        repeat until sheet 1 of window 1 exists
        end repeat
       
        set thePopUp to first pop up button of sheet 1 of window 1 whose description is "Voreinstellungen"
        click thePopUp
        click menu item "Standardeinstellungen" of menu 1 of thePopUp --replace if desired with your preferred preset
       
        click menu button "PDF" of sheet 1 of window 1
        click menu item "Als PDF sichern" of menu 1 of menu button "PDF" of sheet 1 of window 1 -- Save as PDF...
    end tell
end tell

Edit: Wenn Du Dir das mal reinziehst, dann hast einiges an "Konzepten" aus dem UI-Scripting schon mal gesehen.
 
Ich habs jetzt tatsächlich geschafft mir das Datum richtig auszugeben:

Code:
choose file
tell application "System Events" to set ChangeDate to creation date of disk item (result as text)
set formatteddate to text of (year of ChangeDate as text) & "-" & text -2 thru -1 of ("00" & (month of ChangeDate as number)) & "-" & text -2 thru -1 of ("00" & day of ChangeDate) & " " & (text -8 thru -7 of (ChangeDate as text)) & ":" & (text -5 thru -4 of (ChangeDate as text)) & ":" & (text -2 thru -1 of (ChangeDate as text))
-- display dialog "Erstellungsdatum: " & formatteddate
set the clipboard to formatteddate
tell application "ApolloOne"
    activate
end tell

ABER:
Wenn ich das Datum jetzt als EXIF Erstellungsdatum in ApolloOne setze werden die Videos dort richtig zeitlich einsortiert, beim Import nach Fotos.app ist die Zeit aber 1 oder 2h falsch (vermutlich Sommer/Winterzeit?)...arg! Was läuft denn da wieder schief? Wie bekomm ich das Datum als sauberes EXIF Erstellungsdatum für die Videos gesetzt das es in allen Programmen richtig ausgelesen wird und nicht unterschiedlich?

(Die von Fotos.app exportierten Bilder haben ja ihr EXIF Aufnahmedatum, da wird die Uhrzeit in ApolloOne und beim Import in die neue Fotos.App Library immer gleich richtig angezeigt)


Das ist echt schlimm...
Ich will einfach nur alle meine Bilder und Videos von Fotos.app sauber als Dateistruktur mit Ordnern statt Alben und mit sequentiellem bzw. Datum-Dateiname, Erstellungsdatum und EXIF Erstellungsdatum alles sauber so das es egal ist nach was ich sortiere bzw. was der Viewer unterstützt.

Mit dem modifiziert Export hab ich jetzt immerhin:
- sequentielle Dateinamen
- Bilder und auch WhatsApp(!) Bilder auch mit EXIF Datum drin
(- Dateierstellungsdatum müsste sich mit Tools setzen lassen die drüber laufen und das EXIF Datum dafür hernehmen)

... bloß leider keine Videodatums, egal wo, das richtige ist weg. Jetzt hab ich alle Videos als originale exportiert damit ich das Datum hab und will das eben manuell in meine modifiziert exportierten Videos übertragen... aber halt nicht 1-2h falsch :(
 
Hab’s mittlerweile aufgegeben und die Originalvideos genommen und ausgetauscht.
 
Zurück
Oben Unten