Cómo convertir tu historial de ubicación de Google en videos de rutas fluidos
Hace poco me encontré con un repositorio interesante: google-timeline-visualizer. El proyecto toma exportaciones de historial de ubicación sin procesar de Google Maps (Timeline.json) y las assembla en un video MP4 animado con un mapa de tus viajes para el período seleccionado.

Hace un par de años, Google comenzó a mover gradualmente el historial de ubicación desde la nube a los dispositivos de los usuarios. Ahora estos datos residen localmente en voluminosos archivos JSON con una estructura compleja de coordenadas, segmentos y marcadores de actividad. El autor del proyecto primero escribió un script en Python para uso personal, y luego portó la lógica a una app nativa en Kotlin para Android y una versión web para iOS.

Qué puede hacer la utilidad
El propósito principal de la utilidad es simple: convertir puntos de ubicación secos en una animación agradable que no te dé vergüenza publicar en redes sociales o guardar como recuerdo de tus vacaciones.
Aquí hay algunas soluciones interesantes en su interior:
- Filtrado de ruido GPS. Si tu teléfono pierde la señal del satélite por un segundo y te envía al pueblo vecino, el algoritmo corta esos saltos bruscos de ida y vuelta y no rompe la línea general de la ruta.
- Interpolación de vuelos. Los vuelos intercontinentales largos se suavizan a lo largo de un arco de círculo máximo. La cámara vuela suavemente a lo largo de la línea geodésica siguiendo el marcador, en lugar de teletransportarse del punto A al punto B.
- Seguimiento fluido de cámara. Durante los desplazamientos diarios por la ciudad, el marcador puede vagar ligeramente dentro de una zona fija de la pantalla, y solo entonces el mapa comienza a moverse suavemente detrás de él. Esto elimina el temblor molesto en los semáforos y en los atascos.
- Configuración de renderizado flexible. Puedes establecer la duración de 10 a 300 segundos, elegir formato vertical 1080×1920 para historias móviles o el clásico horizontal 1080p.
Cómo ejecutar en escritorio
Inicialmente, el proyecto evolucionó como un script en Python usando FFmpeg para unir teselas y frames. La versión de escritorio todavía funciona.
Necesitarás Python 3.9+ y FFmpeg instalado en tu sistema:
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
El script soporta diferentes formatos de coordenadas: arrays estándar, estructura semanticSegments, coordenadas E7 y strings con prefijos geo:.
Clientes móviles y versión web
Si no quieres complicarte con la terminal, hay dos opciones listas para usar:
- Android. Un APK listo para usar está disponible en los releases del repositorio. La app está escrita en Kotlin, renderiza video directamente en el procesador del teléfono y guarda los clips terminados en la carpeta del sistema
Movies. - iPhone. Funciona a través de una interfaz web en Safari. Se usa el codificador H.264 por hardware del navegador para la codificación.
Para construir el proyecto Android desde cero, necesitarás JDK 17 y Android SDK 36:
./gradlew test lint assembleGithubDebug assemblePlayDebug
python -m pip install -r requirements-dev.txt
python -m pytest
Consideraciones de privacidad
Los datos de ubicación son sensibles, por lo que el autor hizo el renderizado estrictamente local. No hay autorización de cuenta de Google ni envío de JSON a servidores de terceros aquí.
La única interacción de red es cargar teselas de mapas raster del servicio CARTO basado en OpenStreetMap. Antes de cargar el primer mapa, la app advierte directamente sobre estas solicitudes de red.
A quién le será útil
El proyecto será interesante para quienes les gusta cerrar el año y visualizar sus viajes. El código fuente también vale la pena revisarlo para desarrolladores móviles: la base de código demuestra claramente cómo organizar el renderizado de mapas de teselas y transmisiones de video sin bibliotecas externas pesadas.
Proyectos relacionados