Man kann auf dem Mac auf die Bilder des Photo Streams auch OHNE Photos App zugreifen. Hier wird der zugehörige Lösungsweg beschrieben.

Der Use Case: Mit dem iPhone, iPad oder iPod geknipste Bilder können über die sog. “My Photo Stream”-Funktionalität automatisch auf die jeweils anderen, verbundenen Geräte übertragen werden. Das ist praktisch. Es wäre aber noch praktischer, wenn diese Bilder ebenso automatisch auf den Mac synchronisiert würden. Das ist möglich, erfordert aber ein paar Handgriffe. Insbesondere, wenn man eine Lösung sucht, bei der man nicht die Photos App verwenden möchte und die Bilder in einem beliebigen Zielordner landen sollen. Hier das Vorgehen, inspiriert durch einen Artikel auf bockenhauer.com, den es dort allerdings nicht mehr gibt.

Wie funktioniert’s?

Wir schalten sowohl auf dem gewünschten mobilen Gerät, also iPhone, iPad oder iPod, als auch auf dem Mac die “My Photo Stream”-Funktion ein. Danach landen alle mit dem mobilen Gerät aufgenommenen Bilder sowohl (und wie bisher) im “Camera Roll”-Ordner und (neu) zusätzlich in einem Ordner mit dem Namen “My Photo Stream”. Zeitgleich werden die Bilder auf alle verbundenen Geräte in deren “My Photo Stream” Ordner gespiegelt. Beim Mac gibt es aber einen solchen Ordner nicht. Stattdessen werden die Photo Stream Bilder in einen Unterordner des Photos App Packages gelegt. Die hier beschriebene Lösung greift auf diesen Ordner zu und verschiebt die Bilder in einen Wunsch-Zielordner.

My Photo Stream auf dem Mac

Eine kurze Schritt-für-Schritt-Anleitung, um einen “My Photo Stream”-Ordner auf dem Mac zu emulieren.

  1. Photo Stream einschalten. Das ist an vielen anderen Stellen im Netz schon detailliert beschrieben, bspw. hier. Die Kurzversion für’s iPhone: Settings → iCloud → Photos → “My Photo Stream” einschalten. Und für den Mac: System Preferences → iCloud → dort rechts bei Photos den Options-Button klick → “My Photo Stream” einschalten. Kann man alternativ auch über die Settings der Photos App einschalten, aber viele Weg, Rom, etc. pp. NB: Weder “iCloud Photo Library” noch “iCloud Photo Sharing” müssen eingeschaltet sein, damitdie hier beschriebene Lösung funktioniert.
  2. exiv2 installieren, falls noch nicht vorhanden. Die Lösung setzt zum Umbenennen der jpeg-Dateien auf Basis der im jpeg-Header (hoffentlich) vorhandenen EXIF-Informationen auf exiv2. Das Tool lässt sich einfach via (home)homebrew installieren, und zwar so:
    $ brew install exiv2
    Wenn der Packet-Manager brew noch nicht vorhanden ist, dann natürlich erst einmal homebrew installieren…
  3. Shell Datei anlegen. Das folgende Shell-Skript den eigenen Bedürfnissen anpassen und dann in einem Verzeichnis bspw. als photostream.sh speichern.
    #!/bin/bash
    
    # Alle Photo Stream Bilder in den Ordner ~/Downloads/MyPhotoStream/_tmp kopieren
    find ~/Pictures/Photos\ Library.photoslibrary/Masters/ -type f -exec cp "{}" ~/Downloads/MyPhotoStream/_tmp/ \;
    
    # in das _tmp Verzeichnis wechseln
    cd ~/Downloads/MyPhotoStream/_tmp
    
    # Mit dem Programm exiv2 das Aufnahmedatum aus den EXIF-Daten jeder jpg-Datei auslesen.
    # Der Parameter -t setzt das modification date der Dateien auf ihr Aufnahmedatum.
    # Der Parameter -r benennt die Dateien um: Es wird dem Dateinamen das Aufnahmedatum im ISO8601-Format vorangestellt.
    /usr/local/bin/exiv2 -t -r'%Y%m%d_ :basename:' rename $(ls)
    
    # Die Bilder aus dem aktuellen _tmp Verzeichnis in das darüberliegende "MyPhotoStream" Verzeichnis verschieben
    find . -type f -exec mv "{}" .. \;
    
    # Abschließend die Bilder aus dem Photostream-Ordner löschen
    rm -r ~/Pictures/Photos\ Library.photoslibrary/Masters/*
    rm -r ~/Pictures/Photos\ Library.photoslibrary/Thumbnails/*
    
  4. photostream.sh Rechte setzen. Mit
    $ chmod 700 photostream.sh
    die Rechte der Shell-Datei auf “ausführbar” setzen.
  5. Automatisieren. Wir richten einen Daemon ein, der einmal pro Minute unser photostream.sh Skript aufruft. Auf diese Weise werden Bilder-Neuankömmlinge aus dem Photo Stream regelmässig und zeitnah aus dem Photos App Unterordner in unseren Zielordner überführt. Dazu wird eine Datei mit folgendem Inhalt an einem beliebigen Ort mit dem Namen com.NAME.photostream.plist angelegt. NAME kann frei gewählt werden.
    
    
    
    
       Label
       com.NAME.photostream
       ProgramArguments
       
           /Volumes/Macintosh HD/Users/USER/photostream.sh
       
       StartInterval
       60
    
    
    
    In der Datei ist NAME in <string>com.NAME.photostream</string> entsprechend des beim Anlegen der Datei gewählten Dateinamens zu ändern. Auch der Pfad /Volumes/Macintosh HD/Users/USER/photostream.sh muß so angepasst werden, dass er korrekt auf die photostream.sh Shell-Datei zeigt. Das StartInterval von 60 entspricht 60 Sekunden, d.h. das Skript wird einmal pro Minute aufgerufen. Wer weniger häufig nach neuen Bildern im Photo Stream nachschauen möchte, kann den Wert einfach nach oben setzen.
  6. Daemon aktivieren. Wir müssen dem Daemon/Agent manager launchd noch mitteilen, dass es einen neuen Daemon gibt, um den er sich kümmern soll. Das geschieht auf der Kommandozeile mit dem folgenden Befehl:
    $ launchctl load com.NAME.photostream.plist
    Auch hier ist NAME entsprechend zu ersetzen.

Fertig! Wenn’s erstmal läuft, läuft’s wie geschnitten Brot. Auch mit El Capitan und ohne AirDrop. 😉

Join the conversation!

  • hallo zeropage! vielen dank für den tollen tip! danach hatte ich schn seit ewigkeiten gesucht. DANKE! grüsse hannes

    • Grütziwau Kalle! Hatte einen Link zu http://brew.sh eingefügt – vielleicht ist es verwirrend, dass der Befehl auf der Kommandozeile “brew” lautet während das Tool “homebrew” heißt. Mal sehen, ob ich das besser beschreiben kann. Have fun!

  • Super! Genau sowas hatte ich gesucht. ?? Anstatt launchctl auf der Kommandozeile zu bedienen gibtves auch Tools mit grafischem Front-End bspw. LaunchControl.

Leave a Reply

Your email address will not be published. Required fields are marked *