Using your Apple Watch Workout to Geotag DSLR Photos

by Jannik Arndt

I want my photos to have location info in them, and Nikon wants way too much money for that. So I’ll do this: Let my Apple Watch track where I go, using the Outdoor Walk, export the route as GPX and use exiftool to tag all my images. Here’s how I do that.

Export GPX

Apples apps don’t come with an export option, so I use the wonderful little app called RunGap. An in-app-purchase for 2.29€ allows my to export a GPX file of my workout:

There’s also a great website that let’s you analyse the contents of that file:

Write GPS into EXIF

Next, I use the software to edit EXIF data, written in Perl, first published in 2003, still state of the art today: exiftool. You can install it via

brew install exiftool

(on a mac, of course).

Then the command is pretty straightforward:

$ ~ exiftool -geotag=myRoute.gpx ~/Pictures/UntaggedPictures/
    1 directories scanned
   83 image files updated

…and it’s done!

The exiftool can do way more, by the way, they have a page dedicated just for geotagging. But for starters, this does the job pretty well!


I recently created a wonderful bug.

This is a basic example how to implement oAuth2 using Akka HTTP and Scala. It provides three endpoints. From the clients point of view:

  • / — publicly accessible, returns “Welcome!”,
  • /auth — provide your username and password, receive an access_token in return,
  • /api — secured by oAuth, send the access_token in a header to gain access.

From the server’s point of view:

  • / — publicly accessible, do nothing,
  • /auth — receive basic auth credentials, verify they’re in the list of known credentials, create an access_token, return it,
  • /api — receive authorization header, check if access_token is in list of valid tokens.

Since oAuth tokens are short lived, the server also has to invalidate expired tokens.

Getting a Akka HTTP-based backend up and running on Heroku for free can be done in less then 30 minutes — if you know the tricks.