Google's Timeline feature (the successor to Google Maps' old Location History) quietly logs years of where you've been — but Google gives you almost no way to actually look back at it as a story. Google Timeline Visualizer fills that specific gap: point it at your exported Timeline.json, pick a date range, and it renders an animated MP4 of your actual trips traced across a map.
What makes it worth a look isn't just the output — it's that the entire pipeline runs on-device, with a privacy model that's unusually strict for anything touching location data.
TL;DR
| Question | Answer |
|---|---|
| What does it do? | Turns your Google Timeline export into an animated travel video (MP4) |
| Platforms? | Native Android app, iPhone-compatible web app, standalone Python CLI |
| Cost? | Free, MIT-licensed, open source |
| Requires Google sign-in? | No |
| Uploads your location data? | No — rendering happens on-device; only map tile requests leave the device |
| Where to get it? | GitHub Releases (Android APK) or the iPhone web app in Safari |
| Minimum requirements? | Android 8.0+, or iPhone with Safari 16.4+ for MP4 export |

How to get your Timeline data
Your exported Timeline data is the only input the app needs, and it lives in a slightly different place depending on platform:
On Android: open Settings → Location → Location services → Timeline, then choose Export Timeline data, and save the resulting Timeline.json. Google occasionally shuffles this menu's exact wording, so the app's own "Get Timeline file" screen shows current instructions and can deep-link you to the right settings page.
On iPhone: in Google Maps, go to your profile picture → Settings → Personal content → Export Timeline data, and save Timeline.json to Files. From there, open the app's iPhone web version in Safari and select Choose Timeline.json — no app install, and nothing gets uploaded in that flow either.
If your Timeline history looks thinner than you remember — common after a phone swap, a Google Maps reinstall, or a device reset — that's usually a Google-side gap, not the app's fault. Google Maps has its own encrypted-backup Restore Google Maps Timeline flow to recover lost history; restore it there first, then re-export.
Making the video
Once your Timeline file is loaded, the workflow is short:
- Choose a range — a month range, or Exact dates for a short trip. The latest full year is selected by default, and ranges can cross year boundaries.
- Pick a duration and camera style — presets from 10 to 300 seconds, plus Steady, Fixed, or Dynamic camera movement, and a Balanced long-trip compression setting that only changes animation timing, never your actual route geometry.
- Preview — an interactive preview plays the animated map before you commit to a full render.
- Create video — on Android 10+, the finished MP4 saves automatically to
Movies/Timeline Visualizer; older Android versions use the system Save-As picker.
Older travel fades behind the moving marker as the animation progresses, which keeps long, multi-year Timelines legible instead of turning into an unreadable tangle of lines. Long flights and other sparse routes are interpolated along a great-circle path so the camera moves smoothly rather than jump-cutting to the next stop, and local movement (commutes, day-to-day trips) stays within a stable central view before the camera follows it — a small detail, but it's the difference between a video that feels like a flight path and one that feels like a year.
The privacy model, specifically
This is the part worth calling out on its own: the app explicitly uses no Google sign-in, no location permission, no account permission, and no analytics. It reads only the JSON and video files you deliberately select, and the actual video rendering happens on-device — nothing about your trip history is transmitted anywhere.
The one exception is basemap tiles: CARTO receives requests for the specific map areas your trips cover (serving tiles built on OpenStreetMap data), which can reveal which regions you're rendering to the tile provider, even though the underlying Timeline JSON itself is never uploaded. The developer discloses this explicitly before your first Timeline load and lets you cancel before it happens — a level of upfront disclosure that's rare for a location-adjacent app, open source or not.
That design is worth comparing against other on-device, privacy-first tooling we've covered — see our guide on self-hosting photos with Immich for a similar on-device-first approach applied to photo libraries instead of location history.
Getting it installed
The Android app isn't on Google Play yet — it's distributed directly from the project's GitHub Releases as a signed APK. Android will show an "installed outside Google Play" warning for a direct-distribution APK like this; that's expected, not a red flag, as long as you're downloading from the project's own repository and not a mirror. The README is explicit: download only the .apk asset (not the .sha256 checksum file), and you may need to temporarily allow "install unknown apps" for your browser or file manager.
On iPhone, there's nothing to install at all — the web app runs directly in Safari, requires Safari 16.4+ for MP4 rendering, and can be added to your home screen via Safari's Share menu for app-like access.
For desktop users, a standalone Python CLI (visualizer.py) ships in the same repository, using FFmpeg for rendering:
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
Supported Timeline formats and localization
The app handles both the current direct-array Google Timeline export format and the older {"semanticSegments": [...]} structure, plus a raw-location fallback for edge cases, with a warning and local noise reduction applied. It also parses Timeline paths, activities, and visits across multiple coordinate encodings (string, latLng, degree, geo:, and E7 formats), and correctly handles routes that cross the international date line — the kind of detail that only surfaces once real users start filing edge-case bug reports against a genuinely global Timeline dataset.
Localization currently covers English, Korean, Japanese, Simplified and Traditional Chinese, Spanish, French, German, and Brazilian Portuguese, selectable in-app or left on system default.
Related on explainx.ai
- Self-hosting photos with Immich: privacy, cost, and background blur
- How to blur faces in a video for privacy
- How to blur license plates in video for privacy
- Blurring anything in video: a guide to AI privacy tools
- What is C2PA? Content Credentials, explained
Primary source: google-timeline-visualizer on GitHub — 2,100+ stars, MIT licensed
Describes google-timeline-visualizer as of its v2.2.12 release, August 21, 2026. It's an actively developed open-source project — check the repository for the current version and feature set before relying on details here.
