Kleine native macOS-App: Fotos und Videos von einer Kamera-SD-Karte in einen selbst gewählten Ordner kopieren, sortiert nach Aufnahmetag (Jahr/Monat/Tag, z. B. 2026/08/29).
Die App ist markenunabhängig. Jede Karte mit üblichem DCF/DCIM-Aufbau funktioniert gleich – Canon, Nikon, Sony, Fujifilm, Panasonic/Lumix, Olympus/OM System, Ricoh/Pentax, Leica, GoPro und Telefone, die einen DCIM-Ordner bereitstellen. Die Canon EOS 60D ist nur ein Beispiel unter vielen.
Die Dateien auf der Karte bleiben unangetastet. Es wird nur kopiert, niemals verschoben oder gelöscht. Es gibt keine Fotodatenbank und kein Kamerahersteller-SDK – die Karte wird wie ein ganz normaler Datenträger gelesen.
Voraussetzung: macOS 13 (Ventura) oder neuer, Xcode 15 oder neuer.
git clone https://github.com/MarkusFroendhoff/fotoimport.git
cd fotoimport
open Fotoimport.xcodeproj- Oben das Scheme Fotoimport wählen, als Ziel den eigenen Mac.
- Unter Signing & Capabilities das eigene Team wählen (kostenloses Apple-ID-Team reicht zum lokalen Start). Die App ist sandboxed; die nötigen Rechte für Wechseldatenträger und selbst gewählte Ordner sind bereits eingetragen.
- Run (⌘R). Beim ersten Start kann macOS nach Ordnerzugriff fragen – das ist gewollt.
Zum dauerhaften Installieren: Product → Archive, anschließend die App z. B. nach /Applications legen. Eine Notarisierung durch Apple ist für die eigene Nutzung nicht nötig. Ohne Notarisierung warnt Gatekeeper beim ersten Start auf einem anderen Mac – dann Rechtsklick → Öffnen.
Tests in Xcode: Product → Test (⌘U).
- SD-Karte in den Kartenleser stecken. Der Fotoapparat muss nicht per USB angeschlossen sein.
- Fotoimport erkennt Volumes mit einem
DCIM-Ordner (DCF-Unterordner wie100CANON,101NIKON,100MSDCF,100_FUJI, …). - Zielordner wählen. Die letzte Wahl merkt sich die App.
- Die Vorschau zeigt Anzahl, Zeitraum, Datenmenge und wie viele Dateien als Duplikate übersprungen würden.
- Import starten. Fortschritt und danach eine kurze Zusammenfassung (kopiert / übersprungen / fehlgeschlagen).
Falls die Karte nicht automatisch erscheint: Quelle wählen… und den Ordner DCIM (oder die Volume-Wurzel) manuell anwählen. Das hilft auch, wenn macOS den Ordnerzugriff erst nach einer expliziten Auswahl gewährt.
- ⌘O Quelle wählen
- ⇧⌘O Zielordner wählen
- Return Import starten
- Escape Abbrechen während des Kopierens
Gemeinsam ist der Ordner DCIM. Die Unterordner folgen meist dem DCF-Muster (drei Ziffern plus Herstellerkennung):
SD-KARTE/
├── DCIM/
│ ├── 100CANON/ ← Canon, z. B. EOS 60D (IMG_*.JPG / *.CR2, MVI_*.MOV)
│ ├── 101NIKON/ ← Nikon (DSC_*.JPG / *.NEF)
│ ├── 100MSDCF/ ← Sony (DSC*.JPG / *.ARW)
│ ├── 100_FUJI/ ← Fujifilm (DSCF*.JPG / *.RAF)
│ ├── 100OLYMP/ ← Olympus / OM System (P*.JPG / *.ORF)
│ ├── 100_PANA/ ← Panasonic / Lumix (*.JPG / *.RW2)
│ └── Camera/ ← viele Telefone
├── MISC/
├── CANONMSC/ ← Canon-Systemdaten, wird übersprungen
└── AVF_INFO/ ← Sony-Hilfsdaten, wird übersprungen
Nicht jede Karte hat alle diese Ordner – meist nur den der eigenen Kamera. Importiert werden die Mediendateien unter DCIM. Systemordner wie CANONMSC, MISC, AVF_INFO, GPS und unsichtbare macOS-Dateien (.DS_Store, ._*) werden übersprungen.
Sony-Videos in PRIVATE/AVCHD liegen außerhalb von DCIM. Solange ein DCIM-Ordner existiert, scannt Fotoimport dort (Standbilder und Clips in DCIM). Den Ordner PRIVATE kannst du bei Bedarf manuell als Quelle wählen.
Unterstützte Typen (Auswahl): JPG/JPEG, HEIC, RAW wie CR2, CR3, NEF, NRW, ARW, RAF, ORF, RW2, DNG, Video MOV, MP4, MTS, 3GP, dazu THM und weitere gängige Endungen.
Ablage:
ZIELORDNER/2026/08/29/DSC_0123.JPG
ZIELORDNER/2026/08/29/DSC_0123.NEF
Monat und Tag sind immer zweistellig (08, 29).
- Existiert im selben Tagesordner schon eine Datei gleichen Namens und gleicher Größe, wird sie übersprungen (typischer Zweitimport derselben Karte).
- Gleicher Name, andere Größe: beide behalten, die neue Datei heißt z. B.
DSC_0123-2.JPG.
| Dateityp | Quelle |
|---|---|
| JPEG, THM, HEIC, … | EXIF DateTimeOriginal über ImageIO, sonst eigener EXIF-Parser |
| RAW (CR2, NEF, ARW, …) | zuerst ImageIO, falls leer TIFF/EXIF direkt aus dem Dateikopf |
| MOV / MP4 | QuickTime-mvhd-Atom, sonst AVFoundation |
| sonst | Änderungsdatum der Datei |
Der Kalendertag kommt bei Fotos aus den EXIF-Ziffern der Kamera, nicht über eine UTC-Umrechnung. So landet ein Shot vom 29.08. auch in 2026/08/29, unabhängig von der Mac-Zeitzone.
Die App läuft in der App-Sandbox mit:
- Zugriff auf vom Benutzer gewählte Ordner (Quelle und Ziel über den Öffnen-Dialog)
- Lese-/Schreib-Bookmarks, damit der Zielordner beim nächsten Start wieder da ist
- Zugriff auf Wechseldatenträger (eingelegte SD-Karten)
Wenn macOS den Zugriff verweigert:
- Quelle oder Zielordner in der App erneut wählen (das erteilt die Erlaubnis).
- Unter Systemeinstellungen → Datenschutz & Sicherheit → Dateien und Ordner bzw. Wechseldatenträger Fotoimport erlauben.
- Die Karte nicht als Zielordner verwenden – der Import auf die Karte selbst wird blockiert.
- Nichts von der Karte löschen oder verschieben
- Keine PTP/USB-Tether-Verbindung zur Kamera
- Kein Hersteller-SDK, keine Cloud, kein Fotoarchiv
- Kein automatisches Auswerfen der Karte
MIT © 2026 Markus Fröndhoff
Markennamen von Kameraherstellern dienen nur der Beschreibung typischer Kartenlayouts und gehören den jeweiligen Rechteinhabern.