Guide
photoTakenTime vs creationTime
A Google Photos JSON file has several dates. Only one of them is when the photo was taken.
| Field | What it is |
|---|---|
photoTakenTime | When the photo or video was taken. This is the date to use. |
creationTime | When it was uploaded to Google Photos. Can be days or years after it was taken. |
photoLastModifiedTime | When it was last changed in Google Photos. |
geoData | Where it was taken, as Google Photos knows it (including a place you set by hand). |
geoDataExif | The place that was in the file's own EXIF when it was uploaded. |
description | The caption. |
Reading the timestamp
Each date has a timestamp (a string of seconds since 1 January 1970, in UTC) and a formatted text version in UTC. From the sample's IMG_6140.jpg:
"photoTakenTime": { "timestamp": "1629061844", "formatted": "Aug 15, 2021, 9:10:44 PM UTC" }That is one exact moment. A photo's EXIF, though, stores the local time on the camera's clock with no time zone. To write it, Takeoutfix converts the moment into the time zone you choose (your computer's by default) and adds the offset for that date, daylight saving included. In America/Halifax the example becomes:
DateTimeOriginal 2021:08:15 18:10:44 OffsetTimeOriginal -03:00
Apps that read the offset place the photo at exactly the right moment. Videos are simpler: their creation time is stored in UTC, so no time zone is involved.
When there is no photoTakenTime
Some JSON files have only creationTime. Takeoutfix uses it as a last resort and marks each such file in the report as dated by upload time, so you know which dates might be late. The sample's IMG_6002.jpg is one of these.
A timestamp of "0", or a date before 1990, is treated as no date.
Places
geoData is used first, then geoDataExif. A latitude and longitude of 0 and 0 means Google has no place for the photo, so nothing is written.
Takeoutfix matches every photo and video in your Takeout to its JSON, writes the date, place and caption back into the files, and files a fixed copy by year and month. It runs in your browser and nothing is uploaded. The scan and 20 fixed files are free; the whole library is $9, once.
Scan your Takeout free