mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dataevaluationupdated 26 Aug 2026

google-timeline-visualizer review

Timeline Visualizer turns an exported Google Maps Timeline JSON file into an animated travel video. It runs as an Android app, an iPhone Safari web app, or an older Python desktop tool, keeping the Timeline file local while requesting map tiles for the places shown.

+111stars / 7d
Verdict

Our Timeline Visualizer run installed 42 packages in 32 seconds and passed all 36 tests, making the Python path unusually easy to verify for a location-video tool. Use it when you want a local MP4 from an exported Timeline and will inspect the finished route before sharing. Avoid it if sideloading, CARTO tile requests, or the absence of automatic private-area masking conflicts with your privacy model.

We ran it

Lab card: what happened when we ran google-timeline-visualizerScreenshot of google-timeline-visualizer (github.com/mahlernim/google-timeline-visualizer)
Install✓ · 32s42 packages · 166 MB
Build✓ · 10s
Tests✓ · 11s36 passed · 0 failed of 36 (pytest)
Known vulns0(pip-audit)
Repo302 files~23,834 lines of source · 20.4 MB · 4 CI workflows · tests dir

Answers from our run

Does google-timeline-visualizer build from source?

Dependencies installed in 32 seconds (42 packages), and the build succeeded in 10 seconds. We cloned commit 65d4d5b into a clean Debian container with 3 CPUs and no project-specific setup.

Do google-timeline-visualizer's tests pass?

Yes: 36 of 36 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does google-timeline-visualizer have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use google-timeline-visualizer?

People unwilling to sideload Android software: the README says the app is not yet on Google Play and requires installing an APK from GitHub.

What are the alternatives to google-timeline-visualizer?

Dawarich, Google Maps Timeline. Our Timeline Visualizer run installed 42 packages in 32 seconds and passed all 36 tests, making the Python path unusually easy to verify for a location-video tool.

Setup4/5Clean Python run; Android sideload and FFmpeg add friction
Docs5/5Clear exports, privacy, platforms, formats, and build requirements
Community4/52,859 stars and a release plus push on August 26
Maturity4/5Passing measured suite with active platform and privacy work

Who it’s for

Travelers who want a shareable MP4 recap from a Google Maps Timeline export.
Privacy-conscious users who prefer on-device processing over uploading location history to a video service.
Android users comfortable installing an APK directly from GitHub.
Desktop users who can install Python and FFmpeg for the original command-line renderer.

Who it’s NOT for

People unwilling to sideload Android software: the README says the app is not yet on Google Play and requires installing an APK from GitHub.
Users who need fully offline maps: CARTO receives requests for the displayed map areas even though the Timeline JSON stays local.
Anyone sharing a route that includes home, work, or family locations without manual review: issue 66 requests a safe-sharing mode for private areas, so that protection is not currently part of the documented release.
Travel analysis that depends on walking, rail, air, or driving labels: issue 46 says current processing reduces activity segments to coordinates and times.
iPhone users below Safari 16.4 or without H.264 encoding support: the web app requires both for MP4 creation.

Setup reality

Our Python sandbox install succeeded in 32 seconds, adding 42 packages and using 166 MB. The build passed in 10 seconds. Pytest passed all 36 tests in 11 seconds, and pip-audit found 0 known vulnerabilities.

A desktop render still needs Python 3.9 or newer, FFmpeg, a Timeline JSON export, and a CARTO basemap API key when building your own copy. Android development adds JDK 17, Android SDK Platform 36, and Build Tools 36.0.0.

The 20.4 MB checkout contained 302 files and about 23,834 source lines, with 4 CI workflows, a tests directory, and no Dockerfile. The Android release is a direct APK; iPhone rendering needs Safari 16.4 and an open tab until encoding finishes.

A Timeline export becomes a local MP4 instead of a cloud upload

Timeline Visualizer reads the JSON file Google Maps exports from a phone, lets the user choose dates and camera behavior, previews the journey, and renders an MP4. The animation fades older travel, interpolates sparse long-distance routes, and ends with a complete route overview. Android also keeps a local library of created videos and their thumbnails.

The useful privacy choice is local processing. The application asks for no Google sign-in, location permission, analytics permission, or broad storage access. It reads files the user selects and does not upload the Timeline JSON. That claim has a clear boundary: map imagery comes from CARTO using OpenStreetMap data, so the tile provider receives requests for viewed geographic areas.

Android, iPhone, and Python have different setup costs

The Android app requires Android 8.0 or newer and is distributed as an APK from GitHub, not Google Play. Users must temporarily allow their browser or file manager to install unknown apps. The README advises downloading only from the repository release and turning the permission off afterward. That is reasonable direct distribution, but it shifts authenticity checks and updates onto the user.

The iPhone path is a web app in Safari. MP4 creation needs Safari 16.4 or newer with H.264 encoding and requires the tab to stay open. The desktop Python renderer needs Python 3.9 or newer, FFmpeg, and requirements from the repository. Building Android adds JDK 17, Android SDK Platform 36, Build Tools 36.0.0, and a CARTO basemap key.

What happened when we ran it

Our sandbox cloned commit 65d4d5b into a fresh Python 3.12 Debian container with 3 CPUs and 8 GB of RAM. Installation completed in 32 seconds, adding 42 packages and occupying 166 MB on disk. The project build then passed in 10 seconds.

Pytest completed in 11 seconds with 36 passed and 0 failed out of 36. Pip-audit found 0 known vulnerabilities in the installed dependency set. The checkout itself measured 20.4 MB, 302 files, and about 23,834 source lines. Our scan found 4 CI workflow files, a tests directory, and no Dockerfile.

Those results cover repository setup and the Python tests, not a full video made from a private account export. We did not install the Android APK, encode on an iPhone, verify FFmpeg output across every format, or inspect map tile requests. A real acceptance check should use a copied trip, review every frame near its start and finish, and remove the output after sharing.

The exported video can reveal more than the JSON file does

A local renderer prevents a server from receiving the complete Timeline file. The MP4 is still a portable record of movement. Exact start and end points can expose a home, workplace, hotel, school, or relative's address. Issue 66 requests a Safe Sharing mode that would replace selected private areas with coarser locations. The documented release does not claim that feature.

Until masking exists, choose exact dates, preview the whole route, and consider trimming the first and last legs. Do not assume a square 480p video hides detail; map geometry can remain identifiable without readable street labels. CARTO tile requests are another disclosure path. Users who need no network contact should supply an approved local map source or choose a tool designed for offline tiles.

Activity types are lost even when the route remains

The importer supports current Android and iOS direct-array exports, older semantic segments, raw-location fallback, visits, activities, varied coordinate encodings, and routes across the international date line. Conservative outlier filtering ignores isolated implausible out-and-back coordinates while leaving the source JSON unchanged. Users can turn that filter off if each original point matters.

Issue 46 describes a present limitation: transportation metadata is reduced to coordinates and timestamps, so the rendered journey does not distinguish walking, cycling, road, rail, air, or boat segments. A route remains visually continuous, but it cannot answer how the traveler moved. Researchers and expense reviewers should keep the source export and use an analysis tool rather than infer transport from animation speed.

Release 2.4.2 fixed a map-provider dependency

CARTO began requiring authenticated basemap requests, which left backgrounds missing. Version 2.4.2, released August 26, 2026, restored them by using the project's CARTO key in official Android and web builds. Android now removes cached map tiles after 30 days. The incident is a reminder that local rendering still depends on a network map service unless another tile path is configured.

GitHub recorded 2,859 stars, 12 combined issues and pull requests, and a last push on August 26. Dawarich is the better choice for people who want to accumulate, search, and analyze location history on a self-hosted server. Timeline Visualizer is narrower and easier: give it one export, create one video, inspect private places, then decide whether that MP4 should leave the device.

Alternatives

ProjectWhat it isPick it when
DawarichA self-hosted location history service with maps, imports, trips, and statistics.pick this instead when you want a lasting private location archive and analysis rather than a one-off travel video.
Google Maps TimelineGoogle Maps' built-in private timeline and trip history on mobile devices.pick this instead when reviewing or restoring visits matters more than exporting a styled MP4.

What people are saying

  1. [github-trending] mahlernim/google-timeline-visualizer

Sources

  1. Timeline Visualizer README
  2. Timeline Visualizer repository facts
  3. Timeline Visualizer v2.4.2 release
  4. Private-area sharing issue 66
  5. Transportation-mode issue 46

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →