Why Takeout videos show the wrong date
- The file date is the export date. File managers and apps that sort by file date put every video on the day the archive was made.
- Some videos have no date inside. Screen recordings, clips saved from messengers and many edited or exported videos leave the creation time at zero, which some apps show as 1904 or 1970.
- Some carry the wrong date inside. A video that an app converted or re-saved can carry the time of that conversion instead of the time it was recorded.
- Time zones: MP4 and MOV headers hold UTC. Tools that write local time there shift videos by a few hours.
What the tool changes in a video
| Where | What | When |
|---|---|---|
Movie header (mvhd) | creation and modification time = the taken time from the JSON, in UTC | when the stored date is empty, before 1970, or on/after the upload of a video taken earlier — or always, with Replace dates… ticked |
Every track and media header (tkhd, mdhd) | the same time | together with the movie header |
Date text in the metadata (com.apple.quicktime.creationdate, ©day) | the same moment, in the same text format | only when the video already has it — nothing is added |
| File date in the fixed ZIP | the taken time | always |
These fields have a fixed size, so they are overwritten in place: the video keeps its exact size, no box moves (so the sample offsets stay valid whether the index sits before or after the media data), and the picture and sound bytes are copied unchanged. The automated tests decode videos made by ffmpeg before and after the change and compare every frame.
Formats: MP4, MOV, M4V, 3GP and 3G2, and Pixel motion-photo .MP files. AVI, MKV, WebM and other containers get the file date only.
How to fix the dates of Takeout videos
- Drop all your Takeout ZIP parts above. A video and its JSON file are often in different parts.
- Leave Replace dates and locations the camera already wrote off: a video that already holds a plausible recording date keeps it. Tick it only if you corrected dates in Google Photos.
- Click Fix and save and extract the fixed ZIP. To check a video, look at Properties → Details → Media created on Windows, or run
ffprobe -show_entries format_tags=creation_time video.mp4.
Live Photos and motion photos
A Live Photo comes out of Takeout as a HEIC or JPEG plus a short MOV or MP4 without a JSON file of its own. The tool gives the video the photo's date (unless you untick that option) and treats its header by the same rules.
Videos without a JSON file
Names such as VID_20190101_101010.mp4 or PXL_20190809_203449253.mp4 (Pixel, UTC) give a date. It sets the file date and fills an empty video header; a header that already has a date is never replaced by a name.
Large videos
For a video stored uncompressed in the ZIP only its header is read, so a 10 GB video costs a few kilobytes of reading. A video stored compressed has to be unpacked in memory to be edited; above 256 MB it gets the file date only, and the report says so.
Frequently asked questions
Is the video re-encoded or recompressed?
No. Only the date fields in the headers are overwritten. The file keeps its size, and the picture and sound are the same bytes as before.
Which date does a video get?
The photoTakenTime from its JSON file — the date Google Photos shows. If the JSON has only the upload time (creationTime), the video gets that as its file date and its header is left alone.
Will it overwrite the dates my camera wrote?
Not by default. If a JPEG or HEIC already has a "date taken" (DateTimeOriginal) or GPS position, it is kept. A video keeps a plausible recording date in its header; a video date that is empty, before 1970, or only the upload or processing time (on or after the upload of a video taken earlier) is replaced. Turn on Replace dates and locations the camera already wrote if you changed dates in Google Photos and want those instead.
Which apps read the date inside a video?
The movie header's creation time is the standard place: ExifTool shows it as CreateDate, ffprobe as creation_time, Windows Explorer as Media created, and Immich reads it when it imports a video. Apps that sort by file date use the file date, which the fixed ZIP restores too.
Which time zone are the dates in?
Google stores the moment a photo was taken in UTC. The tool converts it to the time zone you choose — your computer's zone by default — and also writes the UTC offset (OffsetTimeOriginal) so apps can show the exact moment. Video headers store UTC by definition, so videos get the exact moment and apps show it in their own zone. Photos taken while travelling will show the time in the zone you picked, not the local time of the trip.
Are my photos uploaded?
No. The ZIP files are read by your browser on your own computer and the fixed archive is written there too. Nothing is sent to a server — you can disconnect from the internet after the page has loaded and it still works.