FlashAir Autodownloader

Aus drf-faq
Wechseln zu: Navigation, Suche

Einleitung

Neben den seit Jahren bekannten EyeFi-Produkten gibt es von Toshiba die FlashAir SD-Karte. Diese Karte ermöglicht es Fotos per WLAN direkt von der Karte abzurufen. Dazu baut sie ein eigenes WLAN auf mit dem man sich per Notebook, Tablet-Computer oder Smartphone verbinden kann und per Browser die Bilder einzeln ansehen und herunterladen kann. Für Android gibt es auch eine FlashAir-App im Google Play Store. Hinzugekommen ist von Transcend die WIFI-Karte. Diese Karte hat den Vorteil, dass sie sich (optional) in ein bestehendes WLAN über den sogenannten "Internet-Modus" integrieren läßt. Dieser Internet-Modus ist inzwischen auch in der neuen Toshiba FlashAir 2 (Class 10) Karte verfügbar. Die erste FlashAir-Karte (Class 6) bietet dies nicht.

Leider gibt es für keine Plattform (Windows, Linux, Android, iOS etc.) ein Programm um alle (oder auch nur die neuesten) Bilder automatisch ohne Benutzerinteraktion von der Karte herunterzuladen. Theoretisch sollte ein Web-Downloader die Bilder herunterladen können. Leider sind die Dateien in der Web-Darstellung der FlashAir-Karte nicht normal als Links angegeben, die Informationen sind vielmehr in JavaScript "versteckt". Die Transcend-WIFI-Karte bietet den direkten Durchgriff auf die Verzeichnisstruktur.

Ein Autodownloader muss also die JavaScript-Strukturen analysieren und daraus die Unterverzeichnisse und die Dateinamen aus der Darstellung (dem HTML-Source) der einzelnen Unterverzeichnisse extrahieren.

FA-Downloader

Auf Basis dieser Anforderungen wurde der FA-Downloader entwickelt. Es handelt sich dabei um ein VBScript das quelloffen und anpassbar ist. Voraussetzung für die Ausführung eines VBS ist der Windows Scripting Host wie er seit Windows 2000 Bestandteil aller x86-Windowsversionen ist.

FA-Downloader-Eigenschaften:

  • Unterstützt beide Versionen der Toshiba-FlashAir-Karte und die Transcend-WIFI-Karte
  • Automatische Erkennung des Kartentyps
  • Kopiert automatisch alle Dateien mit bestimmten Endungen von der Karte auf die lokale Platte des PCs
  • Falls eine leere Dateiendungsliste angegeben wurde, werden alle Dateien kopiert
  • Standardmäßig ist JPG als einzige Dateiendung vorgegeben, d.h. es werden nur JPG-Dateien heruntergeladen
  • Traversiert alle Bilderverzeichnisse unterhalb des DCIM-Verzeichnisses
  • Bereits übertragene Dateien (also auf der lokalen Platte vorhandene) werden nicht nochmal übertragen, Erkennung anhand des Dateinamens
  • Bei Verbindungsabbrüchen wird der Download automatisch neu gestartet
  • Ignoriert das TSB-Verzeichnis dessen Inhalt Toshiba zum Ein-/Ausschalten der WLAN-Funktion verwendet
  • Verarbeitung im Hintergrund (kein sichtbares Fenster)
  • Dauerläufer, kann durch Löschen einer Datei im TEMP-Verzeichnis gestoppt werden
  • Meldungen bei Start und Ende des Programmes
  • Eine CMD-Datei (Batch) kann nach jedem Download gestartet werden
  • Protokollierung in verschiedenen Ausführlichkeitsstufen einstellbar
  • Anzeige dieser Beschreibung beim allerersten Start

Installation

Die Datei FA_Downloader.vbs ist aus der ZIP-Datei zu entpacken und kann dann an einen beliebigen Ort auf der Festplatte kopiert werden. Anschließend sollte eine Desktop-Verknüpfung zu dieser VBS-Datei angelegt werden. Der Autodownloader verarbeitet Kommandozeilenparameter (s.u.) die man in der Verknüpfung angeben kann. Beim allerersten Aufruf des Scripts wird diese Beschreibung angezeigt (sofern eine Internetverbindung vorhanden ist).

Anpassung

Im Kopf der VBS-Datei gibt es einen Bereich der mit "Configuration" überschrieben ist. In diesem Teil kann man die vier wichtigsten Parameter anpassen:

  • CARD = "flashair"
    • Hier ist der Name bzw. die IP der Karte anzugeben
  • localfolder = "C:\PHOTOS\FLASHAIR\"
    • Dies ist das Zielverzeichnis auf dem PC. Der abschließende Rückwärtsschrägstrich ist notwendig!
  • filetypes = "JPG"
    • Hier kann eine Liste mit den Dateiendungen (ohne Punkt) aufgeführt werden, Trennung per Komma
  • loglevel = 0
    • Es kann eine Protokollierung eingestellt werden
      • 0 = Kein Protokoll
      • 1 = Nur Bilderdownloads
      • 2 = Ausführliches Protokoll
      • Das Protokoll findet sich in der Textdatei FA_Download.log im TEMP-Verzeichnis

Kommandozeilenparameter

Die drei ersten obigen Einstellungen können per Kommandozeilenparameter übersteuert werden. Beispiel:

  • FA_Downloader.vbs "mein_flashair" "X:\Bilder\Import\" "JPG,CR2"

In diesem Beispiel werden also nicht nur JPGs, sondern auch CR2s transferiert.

CMD nach Download

Zusätzlich kann für Weiterverarbeitungs- oder Protokollierungszwecke nach jedem Download eine CMD-Datei (Batch) gestartet werden. Hierzu ist im gleichen Verzeichnis wie FA_Downloader.vbs eine FA_Downloader.cmd anzulegen (mit einem Texteditor etc.). An diese wird nach dem Download einer Datei als Parameter die URL zur Datei sowie der komplette Dateiname inkl. Laufwerksbuchstabe und Pfad auf der lokalen Platte übergeben. Damit können dann die Downloads protokolliert werden oder z.B. ein Bildbetrachter pro Datei gestartet werden. Eine interessante Anwendung ist das Übermitteln (z.B. per SFTP) des gerade gemachten Fotos an einen Kunden oder eine Redaktion.

Die Ausführung der CMD-Datei erfolgt im Hintergrund und unterbricht nicht den Download weiterer Dateien.

Beispiel FTP (ungesichert!) an Kunden/Redaktionen etc
SET ftpcmd=%TEMP%\ftpcmd.dat
ECHO user ftpbenutzername> %ftpcmd%
ECHO ftppasswort>> %ftpcmd%
ECHO bin>> %ftpcmd%
ECHO put %2>> %ftpcmd%
ECHO quit>> %ftpcmd%
FTP -n -s:%ftpcmd% ftpdomain.com
DEL %ftpcmd%
EXIT
Beispiel (Bildbetrachter Irfanview)
"C:\Program Files (x86)\IrfanView\i_view32.exe" %2 /fs /one
EXIT
Beispiel Protokollierung
ECHO %1 %2 >>%TEMP%\FILELIST.LOG
EXIT

Der FA-Downloader kann aber auch ein eigenes Protokoll namens FA_Downloader.log im TEMP-Verzeichnis erzeugen.

Programm beenden

FA_Downloader.vbs legt beim Programmstart eine Datei im TEMP-Verzeichnis an. Sobald diese gelöscht wird beendet sich der Downloader selbst wobei laufende Downloads noch zu Ende gebracht und nicht abgebrochen werden. Die Datei beginnt mit "FA_Downloader_", dann folgt eine Nummer und die Dateiendung ".tmp".

Versionen

  • 05.02.2014 Unterstützung für Toshiba FlashAir 2 hinzugefügt
  • 02.02.2014 Automatische Erkennung des Kartentyps
  • 01.02.2014 Kartennamen bzw. IP anstelle der URL
  • 22.01.2014 Unterstützung für Transcend WIFI hinzugefügt
  • 25.03.2013 Protokollierung und Anzeige der Beschreibung beim ersten Start
  • 24.02.2013 Externe CMD-Datei startbar nach jedem Download
  • 19.02.2013 Fehler bei der Verarbeitung der Kommandozeile korrigiert
  • 18.02.2013 Meldungen bei Start und Ende des Programmes
  • 16.02.2013 Programmende per TEMP-Datei
  • 15.02.2013 Artikel in drf-FAQ
  • 14.02.2013 Beginn Entwicklung

Lizenz

FA_Downloader.vbs unterliegt der CreativeCommons Lizenz Zero (CC0).

Bildbetrachter

Mit XnView kann man die heruntergeladenen Bilder sofort automatisch anzeigen lassen (auch ohne CMD nach Download). Dazu sind in den Optionen in der Betrachtergruppe die Haken bei "Auswahl im Betrachter mit Bildansicht synchronisieren", "Automatisch aktualisieren" und "Neue Dateien automatisch markieren" zu setzen.

Hinweise

  • Leider ist es bei der FlashAir-Card so, dass wenn NUR das TSB-Verzeichnis vorhanden ist die Karte dieses benutzt und dort die Bilder ablegt und nicht in einem normalen DCIM-Verzeichnis. FA-Downloader holt aber keine Bilder aus einem TSB-Verzeichnis weil Toshiba dort JPG-Dateien zur WLAN-An/Aus-Steuerung erzeugt. Lösung: Im Kartenleser ein eigenes DCIM-Verzeichnis erzeugen oder das TSB-Verzeichnis löschen. Ist kein Verzeichnis auf der Karte vorhanden, so wird mit dem ersten Bild in der Kamera ein DCIM-Verzeichnis erzeugt.

Links