Op windows gewoon python 2.7 installeren (voor python 3 moet je zelf het script verbouwen).
Je moet tenminste de files upload.py en upload_with_authentication.py in een directory zetten. Upload.py is enkel voor foto’s genomen met de app, en dan kun je net zo goed de app laten uploaden, maar die andere gebruikt wat functies uit de upload.py waardoor je 'm toch nodig hebt.
Ook moet je in python de exifread module installeren.
Vervolgens is het gewoon een kwestie van: c:> python upload_with_authentication.py c:\hierstaanze
Via de commandprompt.
En dan hopen dat je geen foutmelding krijgt
Inmiddels met de exiftool aan de slag geweest en daar staat gewoon dat de Orientation in de foto’s zit al zoals Wimmel ook aangeeft. Probeer ik Orientatin op 1 te zetten (waar ie dan al eigenlijk op staat), dan geeft Windows al aan dat de foto 180 graden gedraaid is en een fotoprogramma laat daarna ook de foto op z’n kop zien. Orientation op 3 zetten lukt niet, want dan geeft exiftool aan dat 3 geen geldige waarde is…
Beetje vaag allemaal. Nog maar eens verder uitzoeken waar nou het echte probleem zit.
Je moet tussendoor ook nog 3 environmentvariabelen zetten. De correcte waardes zijn persoonlijk en kun je op http://api.mapillary.com/v1/u/uploadhashes vinden.
In windows kun je daarvoor een batch file maken die er ongeveer zo uitziet;
@echo off
cd /d %~dp0
echo type de directory met de te uploaden bestanden, bijvoorbeeld: E:\DCIM\100_VIRB\
set /p input=
C:\Python27\Scripts\pip install exifread
set MAPILLARY_PERMISSION_HASH=helelangetekstmetcijfersenletters
set MAPILLARY_SIGNATURE_HASH=korteretekst
set MAPILLARY_USERNAME=username
C:\Python27\python upload_with_authentication.py %input%
pause
Als je die opslaat als upload.cmd in dezelfde directory waar upload.py en upload_with_authentication.py staat, moet je dit volgens mij kunnen starten door een dubbelklik op upload.cmd. (maar niet getest).
Traceback (most recent call last):
File "upload_with_authentication.py", line 138, in <module>
if verify_exif(filepath):
File "upload_with_authentication.py", line 62, in verify_exif
with open(filename, 'rb') as f:
IOError: [Errno 22] invalid mode ('rb') or filename: '*.JPG'
Je moet dus alleen het upload pad ingeven dus zonder *.jpg
python upload_with_authentication.py upload_dir
Dan gaat het goed, althans met een klein testje.
Zal eens tzt met wat meer bestanden proberen.
Werkt het bij jullie nog steeds, of lopen jullie hier sinds gisteravond/vanochtend ook tegenaan? Al was de melding gisteravond iets anders, maar kwam op hetzelfde neer (beide Windows 7).
Als ik de upload URL (https://mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com) in een browser intik krijg ik dezelfde error in alle browsers (IE, FF, Chrome).
Ik kreeg andere foutmeldingen, bij mij werkt het ook niet meer. Het testje dat gelukt leek blijkt online ook al niet toegankelijk te zijn dus echt lekker werken die scripts niet.
Uploading sequence ad2d5dd7-e14d-480e-a659-161fc290845c.
Uploading: VIRB0521.JPG
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Program Files\Python\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "V:\OSM\Mapillary\upload.py", line 177, in run
upload_file(filepath, **self.params)
File "V:\OSM\Mapillary\upload.py", line 115, in upload_file
response = urllib2.urlopen(request)
File "C:\Program Files\Python\lib\urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "C:\Program Files\Python\lib\urllib2.py", line 431, in open
response = self._open(req, data)
File "C:\Program Files\Python\lib\urllib2.py", line 449, in _open
'_open', req)
File "C:\Program Files\Python\lib\urllib2.py", line 409, in _call_chain
result = func(*args)
File "C:\Program Files\Python\lib\urllib2.py", line 1240, in https_open
context=self._context)
File "C:\Program Files\Python\lib\urllib2.py", line 1194, in do_open
h.request(req.get_method(), req.get_selector(), req.data, headers)
File "C:\Program Files\Python\lib\httplib.py", line 1001, in request
self._send_request(method, url, body, headers)
File "C:\Program Files\Python\lib\httplib.py", line 1035, in _send_request
self.endheaders(body)
File "C:\Program Files\Python\lib\httplib.py", line 997, in endheaders
self._send_output(message_body)
File "C:\Program Files\Python\lib\httplib.py", line 850, in _send_output
self.send(msg)
File "C:\Program Files\Python\lib\httplib.py", line 812, in send
self.connect()
File "C:\Program Files\Python\lib\httplib.py", line 1216, in connect
server_hostname=server_hostname)
File "C:\Program Files\Python\lib\ssl.py", line 350, in wrap_socket
_context=self)
File "C:\Program Files\Python\lib\ssl.py", line 566, in __init__
self.do_handshake()
File "C:\Program Files\Python\lib\ssl.py", line 796, in do_handshake
match_hostname(self.getpeercert(), self.server_hostname)
File "C:\Program Files\Python\lib\ssl.py", line 269, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
CertificateError: hostname 'mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com' doesn't match either of 's3-eu-w
est-1.amazonaws.com', '*.s3-eu-west-1.amazonaws.com'
Ook werd een vergelijkbaar probleem gemeld op https://github.com/mapillary/mapillary_issues/issues/512
Heb daar in de comments bij vermeld dat het niet enkel voor upload.py mis gaat, maar ook voor upload_with_authentication.py.
Workaround schijnt te zijn om te downgraden naar Python 2.7.8, dus dat probeer ik morgen maar eens.
Het probleem is echter dat mijn installerscript niet volledig was waardoor de taalbestanden niet meegenomen werden. Even opnieuw downloaden (versienummer is niet gewijzigd) en installeren.
Ik heb gisteren weer een flinke serie foto’s gemaakt. Die wilde ik uploaden via de manual upload maar die werkt niet (Na drukken op UPLOAD gebeurt er niets meer). Toen ben ik maar eens gedoken in het uploaden met de Python scripts. Ik heb daar niet veel verstand van maar ik denk dat ik nu een heel eind ben. Als ik de upload.cmd van Wimmel draai dan gebeurt er wel e.e.a. maar er is een foutmelding bij alle foto’s. “Missing required EXIF tag: GPS GPSLongitude” . Ik begrijp deze melding wel maar alle foto’s bevatte toch echt alle benodigde GPS data. Ze worden bv prima herkend door Garmins Basecamp. Iemand enig idee wat ik fout doe?