I'm a big fan of Komoot, but I was missing a way to batch export my planned routes. I have about 350 routes on there, so downloading them manually wasn't an option.

After some fiddling around and reverse-engineering their API, I came up with a tool to do this. You can find it on GitHub:

https://github.com/pieterclaerhout/export-komoot

Usage is prettry straightforward:

Usage of ./export-komoot:
  -concurrency int
        The number of simultaneous downloads (default 16)
  -email string
        Your Komoot email address
  -filter string
        Filter on the given name
  -format string
        The format to export as: gpx or fit (default "gpx")
  -no-incremental
        If specified, all data is redownloaded
  -password string
        Your Komoot password
  -to string
        The path to export to

It does a full download, knows how to do an incremental download and allows you to specify if you want to export .gpx or .fit files. Since it's written in Go, I couldn't resist in adding concurrency for the downloads to make it really fast.

On my machine, it does a full download of all my 347 routes in about 8.5 seconds. That's about 40 routes per second…

Related Posts

  • Handling Unix timestamps in JSON
  • Combining channels and wait groups
  • Pretty-print JSON with Go
  • Using the Docker client from Go part 2
  • Using environment variables in Go tests