Runtastic ist an sich ja eine feine Sache, man kann den Dienst „kostenfrei“ nutzen und seine Aktivitäten erfassen, dokumentieren und auswerten. Dafür bezahlt man mit seinen gesammelten Daten, wer mehr will muss dann auch noch ein Premium-Abo abschließen und/oder die Pro-App kaufen. Aber wehe, man möchte seine Daten auch außerhalb der Runtastic-Plattform verwenden, da hört die Freundschaft schnell auf. Dass alle hochgeladenen Daten dem jeweiligen Nutzer gehören und dieser generell damit anstellen darf, was er will, scheint Runtastic nicht im Geringsten zu Interessieren.
Mir geht es speziell um die mit der App erfassten Geodaten. Diese möchte man vielleicht auch gern mit anderen Programmen bzw. mit anderen Online-Plattformen nutzen.
Dabei steht es jedem frei, sich zu EINER Aktivität die Track-Daten in verschiedenen Formaten herunterzuladen. Diesen Vorgang darf man aber nicht beliebig wiederholen, sondern die möglichen Downloads pro Stunde oder Tag sind begrenzt. Man kann also nur wenige Aktivitäten auf einmal exportieren und muss dann warten. Grund dafür sind Tools, die einem in der Vergangenheit das massenhafte Herunterladen aller Aktivitätsdaten ermöglichten. Da Runtastic das nicht gepasst hat, wurde das Download-Limit eingeführt.
Nicht zuletzt der DSGVO haben wir es jedoch zu verdanken, dass wir unsere gesamten Account-Daten auf einen Schlag exportieren dürfen. Dazu meldet man sich bei Runtastic an, klickt oben rechts auf den Pfeil neben dem Benutzerbild und wählt Einstellungen. Auf der linken Seite gibt es den Menüpunkt Export. Dort kann man einen Export seiner Account-Daten anfordern und mit etwas Zeitversatz herunterladen.
ABER: Auch hier hat sich Runtastic Mühe gegeben, die Nutzung der exportierten Daten möglichst umständlich zu gestalten. Dazu werden einfach alle Daten im JSON-Format bereitgestellt, auch die Trackdaten. Und anstatt sich hier zumindest an die allgemein gültige Spezifikation GeoJSON zu halten, hat man sich lieber für eine eigene Darstellungsform entschieden, damit Converter-Programme nicht eingesetzt werden können.
Zum Glück gibt es hilfsbereite Programmierer da draußen, die sowas nicht akzeptieren wollen und entsprechende Hilfsmittel zur Verfügung stellen.
Zuerst bin ich über den Runtastic GPX Converter von SamFent gestolpert. Wandelt zuverlässig die JSON-Daten von Runtastic in gültige GPX-Daten um. Allerdings jede Datei einzeln, man muss viel hin und her kopieren, aber für die Massenumwandlung ist es auch nicht konzipiert worden.
Nach weiterer Suche habe ich dann runtastic-activity-parser von Eugen Mayer gefunden. Dabei handelt es sich um einen Fork von runtastic-activity-lib von Matthias Richter. Letztlich würden es wahrscheinlich beide Projekte gut hinbekommen, aber da nur von Eugen Mayer eine vorkompilierte JAR zum Download angeboten wird, habe ich mich für den Fork entschieden.
Wie man genau vorgeht, ist auf der Projektseite von Github gut beschrieben. Export von Runtastic anfordern, runterladen und entpacken. Dann die JAR-Datei von Github herunterladen. Da es sich um ein Java-Projekt handelt, muss natürlich auch Java installiert sein. Abschließend die Console (cmd.exe) öffnen, in den Ordner mit der JAR-Datei wechseln und dann wie folgt aufrufen:
java -jar runtastic-activity-parser.jar c:\quellverzeichnis c:\zielverzeichnis
Danach beginnt das Programm, die JSON-Dateien umzuwandeln, der Fortschritt wird dabei immer angezeigt. Nach Abschluss liegen die GPX-Dateien im angegebenen Zieverzeichnis. Einziger Wermutstropfen, die GPX-Dateien haben danach den gleichen kryptischen, nichts sagenden Dateinamen wie zuvor auch schon die JSON-Dateien. Schöner wäre es gewesen, wenn diese als Dateiname Datum + Beginnzeit verpasst bekommen hätten, dann könnte man bestimmte Daten gezielt suchen.
Aber da ich keine Ahnung von Java habe und auch nicht von dessen Kompilierung mittels maven verstehe, bleibt mir nur, diesen Umstand zu akzeptieren. Vielleicht erbarmt sich ja irgendwann nochmal jemand und verpasst dem Programm eine bessere Benennung der Ausgabe-Daten.
Update:
Da mir das Ausgabe-Format einfach nicht in den Kram passt, habe ich ein kleines Powershell-Script geschrieben, welches eine Umbenennung der GPX-Dateien bewirkt. Die Dateien werden nach folgendem Schema umbenannt: YYYY-MM-DD HH_MM. Geht bestimmt auch eleganter, aber von Powershell hab ich auch nur relativ wenig Ahnung, außerdem sollte es schnell gehen 🙂
gci 'c:\zielverzeichnis\*.gpx' | ForEach{ $var1 = gc $_.FullName $var2 = $var1[15].substring(10,16) $var2 = $var2.Replace("T"," ") $var2 = $var2.Replace(":","_") rename-item -Path $_.FullName -Newname ( $var2+".gpx" ) -force }