>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Kotlin

Comment transformer votre historique de localisation Google en vidéos de trajets fluides

Je suis récemment tombé sur un dépôt intéressant : google-timeline-visualizer. Le projet prend les exports bruts de l'historique de localisation de Google Maps (Timeline.json) et les assemble en une vidéo MP4 animée avec une carte de vos trajets pour la période sélectionnée.

Bibliothèque de vidéos

Il y a quelques années, Google a commencé à déplacer progressivement l'historique de localisation du cloud vers les appareils des utilisateurs. Aujourd'hui, ces données résident localement dans des fichiers JSON volumineux avec une structure complexe de coordonnées, de segments et de marqueurs d'activité. L'auteur du projet a d'abord écrit un script Python pour un usage personnel, puis a porté la logique vers une application Kotlin native pour Android et une version web pour iOS.

Nouvelle vidéo

Ce que cet utilitaire peut faire

Le but principal de cet utilitaire est simple : transformer des points de localisation secs en une animation agréable que vous n'aurez pas honte de publier sur les réseaux sociaux ou de garder comme souvenir de vos vacances.

Voici quelques solutions intéressantes à l'intérieur :

  • Filtrage du bruit GPS. Si votre téléphone perd le signal satellite pendant une seconde et vous envoie dans la ville voisine, l'algorithme supprime ces sauts brusques et ne rompt pas la ligne de route globale.
  • Interpolation des vols. Les longs vols intercontinentaux sont lissés le long d'un arc de grand cercle. La caméra suit doucement la ligne géodésique en suivant le marqueur, au lieu de se téléporter du point A au point B.
  • Suivi caméra fluide. Lors des trajets quotidiens en ville, le marqueur peut errer légèrement dans une zone d'écran fixe, et c'est seulement ensuite que la carte commence à se déplacer en douceur derrière lui. Cela élimine les secousses désagréables aux feux de signalisation et dans les embouteillages.
  • Paramètres de rendu flexibles. Vous pouvez définir la durée de 10 à 300 secondes, choisir le format vertical 1080×1920 pour les stories mobiles ou le classique horizontal 1080p.

Comment exécuter sur desktop

Initialement, le projet a évolué sous forme de script Python utilisant FFmpeg pour assembler les tuiles et les images. La version desktop fonctionne toujours.

Vous aurez besoin de Python 3.9+ et de FFmpeg installé sur votre système :

python -m pip install -r requirements.txt
python visualizer.py --input Timeline.json --year 2025 --camera-movement steady \
  --long-trip-compression balanced --output my_trip_2025.mp4

Le script prend en charge différents formats de coordonnées : tableaux standards, structure semanticSegments, coordonnées E7 et chaînes avec préfixes geo:.

Clients mobiles et version web

Si vous ne voulez pas vous embêter avec le terminal, deux options prêtes à l'emploi sont disponibles :

  1. Android. Un APK prêt à l'emploi est disponible dans les releases du dépôt. L'application est écrite en Kotlin, effectue le rendu vidéo directement sur le processeur du téléphone et enregistre les clips terminés dans le dossier système Movies.
  2. iPhone. Fonctionne via une interface web dans Safari. L'encodeur matériel H.264 du navigateur est utilisé pour l'encodage.

Pour construire le projet Android depuis zéro, vous aurez besoin de JDK 17 et Android SDK 36 :

./gradlew test lint assembleGithubDebug assemblePlayDebug
python -m pip install -r requirements-dev.txt
python -m pytest

Considérations sur la vie privée

Les données de localisation sont sensibles, c'est pourquoi l'auteur a rendu le rendu strictement local. Il n'y a pas d'autorisation de compte Google ni d'envoi de JSON vers des serveurs tiers ici.

La seule interaction réseau est le chargement des tuiles de carte raster depuis le service CARTO basé sur OpenStreetMap. Avant de charger la première carte, l'application vous avertit directement de ces requêtes réseau.

À qui cela sera utile

Le projet intéressera ceux qui aiment faire le bilan de l'année et visualiser leurs trajets. Le code source mérite également un coup d'œil pour les développeurs mobiles : la base de code montre clairement comment organiser le rendu de cartes tuilées et de flux vidéo sans lourdes bibliothèques externes.

Projets similaires