Hilfe bei Skript für Fotodownload von GoPro (Linux)

ebastler

Volt-Modder(in)
Hilfe bei Skript für Fotodownload von GoPro (Linux)

Hallo,

ich muss momentan bei meinem Praktikum ein Skript schreiben, das automatisch alle Fotos von einer GoPro auf einen Linux-Rechner lädt. An sich kein Problem, wofür gibt es Linux Shell Skripts, und die klassischen Tools wie wget:

Code:
wget -r -nd -A JPG -S -N -P /home/euracluna/gopro/fotos http://10.5.5.9:8080/videos/DCIM/100GOPRO/ -o log

Der Befehl prüft alle .JPG auf der Kamera und lädt nur die, die er noch nicht am Rechner hat, in das angegebene Verzeichnis.
So weit so gut.

Nun soll das Skript aber bei einem Timelapse (10s Pause zwischen zwei Bildern) auf der GoPro immer das aktuellste Foto laden. Bis zu ca. 100 Fotos geht es gut, danach verschluckt es sich. Grund: wget scannt mir alle .JPG Dateien erstmal durch. Es lädt zwar nicht die komplette Datei an sich, aber ab 100 Bildern wird es schon so langsam, dass ein Download >10s dauert, und dann zwei Bilder direkt hintereinander geladen werden. Was nicht akzeptabel ist, da immer das aktuellste Bild auf einer Leinwand gezeigt werden soll.

Meine Idee war, das log von wget auszunutzen, daraus dann alle bereits geprüften Adressen (und damit alle schon geladenen Bilder) zu extrahieren und diese dann aus dem Scannen auszuschließen:

Code:
empfangen=$(egrep -e "--" log |cut -d ' ' -f 4 | tr '\n' ',')

Dieser Codeabschnitt (in google gefunden und etwas an meine Bedürfnisse angepasst) kriegt das auch sauber hin, mir alle bereits geladenen Adressen als Komma-getrennte Liste abzuspeichern, aber ich kriege es nicht hin, diese aus wget auszunehmen.

Ich arbeite seit genau 3 Tagen mit Linux Shell Skripts, entsprechend gering sind auch meine Kenntnisse damit. Es reicht aus, mir per Copy-Paste von Beispielen etwas zusammenzustellen und an meine Bedürfnisse anzupassen, und auch mal einige einfachere Zeilen selbst zu schreiben, aber manchmal laufe ich einfach gegen eine Wand.

Kann mir da jemand von euch ein Wenig weiterhelfen?
Wäre wirklich nett!

Ach ja, die GoPro soll am Ende bei einer Veranstaltung mit einem Heliumballon über der Menschenmenge schweben und alle 10s ein Foto aufzeichnen, das den Leuten unten auf einem großen Monitor gezeigt wird.

lg
Moritz

EDIT: Ach ja, das ganze Skript lasse ich einfach in einer Endlosschleife laufen, bis es manuell unterbrochen wird, per ctrl-C. Nicht elegant, aber es funktioniert ganz gut, wie ich festgestellt habe. Naja, bis ~100 Fotos eben.
 
AW: Hilfe bei Skript für Fotodownload von GoPro (Linux)

Ich hab selber keine GoPro, aber hier sieht es für mich so aus als könnte man sich per ssh mit der Kamera verbinden.
Wenn das funktioniert könntest Du die Dateien mit rsync übertragen. rsync bietet im Gegensatz zu wget eine Option die kopierten Dateien auf dem Remote Host zu löschen.
Auf der Kamera wäre dann immer das aktuellste Foto, bzw. die noch nicht kopierten Dateien.
 
AW: Hilfe bei Skript für Fotodownload von GoPro (Linux)

Danke für den Tipp!

Ich habe das gar nicht gewusst... ich habe zwar versucht, per SSH auf die GoPro zu kommen, aber habs nicht geschafft.
Anscheinend erstellt das Ding zwei Hosts unter verschiedenen IPs?
Ich teste mal eben, ob die Hero 3 Black Edition, die ich hier bei der Arbeit habe, das auch kann.
Hoffentlich lässt sie mich drauf...

Edit: Nope, kein SSH mehr:

Code:
Nmap scan report for 10.5.5.9
Host is up (0.0031s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
80/tcp   open  http
8080/tcp open  http-proxy

Nmap scan report for 10.5.5.109
Host is up (0.00040s latency).
All 1000 scanned ports on 10.5.5.109 are closed (971) or filtered (29)

Nmap done: 256 IP addresses (2 hosts up) scanned in 8.14 seconds

Auf .9 sind nur 80 und 8080 offen, 109 ist komplett zu, wie es aussieht :/
 
Zuletzt bearbeitet:
AW: Hilfe bei Skript für Fotodownload von GoPro (Linux)

Ja, schade. Hab auch gesehen dass wohl das rsync Paket eh nicht mit drauf gewesen wäre.
Wirkich schade, weil das wäre eine komfortable Möglichkeit gewesen.

Bei wget scheint es auch nur die Möglichkeit zu geben ganze Verzeichnisse auszuschließen (--exclude-directories), keine einzelnen Dateien.
 
AW: Hilfe bei Skript für Fotodownload von GoPro (Linux)

Hm, ganze Verzeichnisse auszuschließen ist doof, denn die Gopro speichert natürlich alle Bilder in den selben Ordner...
Mir gehen die Ideen aus :/

Eine Idee hab ich noch:

‘--exclude-domains domain-list’
Specify the domains that are not to be followed (see Spanning Hosts).

Eben gefunden (man zum hundertsten Mal durchgeschaut). Das, gefüttert mit meiner Liste von bereits geladenen Bildern, sollte doch eigentlich das gewünschte Ergebnis haben, oder?

EDIT: Nope, er scannt trotzdem alle Files auf der Kamera :/
 
Zuletzt bearbeitet:
Zurück