Skip to content

[Bug] Large files left out after unzipping #121

Description

@azabost

What version of GPTH are you using?

6.1.3

What flag combination did you use?

--input "G:\takeout-2026-04-18" --output "G:\takeout-2026-04-18-out" --albums "shortcut" --hardlink --update-creation-time

Is Exiftool installed?

Yes

What is the current output/result?

I believe this problem may be related to the Google Takeout setting I used, i.e., 2GB ZIP files.

I downloaded 177 files from Google Takeout and the majority of them were ZIP files, but some of them were MP4 instead. I suppose Google did that because these MP4s are already larger than 2GB setting I used.

Image

The file names on the screenshot above are exactly what Google gave me - they don't follow the ZIP name pattern, but they seem to consist of <original_file_name>-<takeout_part_number_just_like_in_case_of_zips>.

I suppose this is an edge case that is not supported by GPTH right now because these files were simply ignored - they are still in the input dir, next to the ZIPs and the .gpth-unzipped dir. Also, progress.json doesn't mention these files at all.

I do see e.g. .gpth-unzipped\Takeout\Google Photos\Photos from 2019\GH010015.MP4.supplemental-metadata.json so it should be possible to work with these large files normally, e.g., to update their timestamps, etc.

Since there were not too many of them, I would like to move them by hand instead of repeating the whole process (unzipping these 300+ GB took a few hours), but the problem I'm facing now is that they weren't updated with their respective JSON metadata (e.g., timestamps). Maybe once this edge case gets covered, I could simply re-run GPTH on the remaining files to get them updated? 🤔

What is the expected output/result?

Those large files should be processed by GPTH instead of being left out in the input directory.

Relevant log output

[ INFO  ] ===== GPTH Logging started 2026-04-20T01:55:55.570812 =====
[ INFO  ] Log file: G:\takeout-2026-04-18-out\gpth_v6.1.3_20260420-015555.log
[ INFO  ] Platform: windows (Dart SDK 3.11.5)
[ INFO  ] GPTH Version: 6.1.3
[ INFO  ] Invocation:
[ INFO  ]   Executable: C:\Program Files\gpth\gpth_neo-6.1.3-release-windows-x64.exe
[ INFO  ]   CWD: C:\Program Files\gpth
[ INFO  ]   Args (argv): ["--input","G:\\takeout-2026-04-18","--output","G:\\takeout-2026-04-18-out","--albums","shortcut","--hardlink","--update-creation-time"]
[ INFO  ]   Command (approx): "C:\\Program Files\\gpth\\gpth_neo-6.1.3-release-windows-x64.exe" --input "G:\\takeout-2026-04-18" --output "G:\\takeout-2026-04-18-out" --albums shortcut --hardlink --update-creation-time
[ INFO  ] ExifTool initialized.
[ INFO  ] Messages Log will be saved to: G:\takeout-2026-04-18-out\gpth_v6.1.3_20260420-015555.log
[ INFO  ] Exiftool found! Continuing with EXIF support...
[ INFO  ] JSON Dates Dictionary not loaded. Missing JSON dates will be extracted from EXIF info or other fallback methods.
[ INFO  ] --json-dates argument not given; skipping external dates dictionary load.
[ INFO  ] --keep-input = false, inputExtractedFromZip = true => shouldClone = false
[ INFO  ] 
[ INFO  ] ▶️ --- Step 1/8: Fix Extensions ---
[ INFO  ] [Step 1/8] Fixing file extensions (this may take a while)...
[ INFO  ] ✅ Fix Extensions completed in 3m 38s
[ INFO  ]    Fixed 6 file extensions
[ INFO  ] 
[ INFO  ] ▶️ --- Step 2/8: Discover Media ---
[ INFO  ] [Step 2/8] Discovering media files (this may take a while)...
[ INFO  ] ✅ Discover Media completed in 1m 12s
[ INFO  ]    Discovered 20120 media files (19984 from year folders, 136 from albums)
[ INFO  ] 
[ INFO  ] ▶️ --- Step 3/8: Merge Media Entities ---
[ INFO  ] [Step 3/8] Merging identical media entities and removing duplicates (this may take a while)...
[ INFO  ] [Step 3/8] Processing 20120 media entities from media entities collection
[ INFO  ] [Step 3/8] 120 media entities will be merged (entities with multiple file paths for the same file content)
[ INFO  ] [Step 3/8] 20000 final media entities left
[ INFO  ] [Step 3/8] No duplicates files (within-folder) to remove
[ INFO  ] [Step 3/8] === Telemetry Summary ===
[ INFO  ] [Step 3/8]     Files total                        : 20120
[ INFO  ] [Step 3/8]     Size buckets                       : 19953
[ INFO  ] [Step 3/8]     Ext buckets                        : 164
[ INFO  ] [Step 3/8]     Quick buckets                      : 208
[ INFO  ] [Step 3/8]     Hash groups                        : 117
[ INFO  ] [Step 3/8]     Merged media entities (by content) : 120
[ INFO  ] [Step 3/8]     Primary files in collection        : 20000
[ INFO  ] [Step 3/8]     Secondary files in collection      : 120
[ INFO  ] [Step 3/8]     Canonical files (ALL_PHOTOS/Year)  : 19984
[ INFO  ] [Step 3/8]     Non-Canonical files (Albums)       : 136
[ INFO  ] [Step 3/8]     Duplicate files removed (I/O)      : 0
[ INFO  ] [Step 3/8]     Time total                         : 16188 ms
[ INFO  ] [Step 3/8]       - Find duplicates                : 15839 ms
[ INFO  ] [Step 3/8]         - Size scan                    : 239 ms
[ INFO  ] [Step 3/8]         - Ext bucketing                : 0 ms
[ INFO  ] [Step 3/8]         - Quick signature              : 64225 ms
[ INFO  ] [Step 3/8]         - Hash grouping                : 50295 ms
[ INFO  ] [Step 3/8]       - Merge/replace                  : 185 ms
[ INFO  ] [Step 3/8]       - Remove/IO                      : 44 ms
[ INFO  ] [Step 3/8] === Merge Media Entity Summary ===
[ INFO  ] [Step 3/8]     Initial Entities in collection               : 20120
[ INFO  ] [Step 3/8]         Duplicate files removed/moved            : 0
[ INFO  ] [Step 3/8]         Primary + Secondary files                : 20120
[ INFO  ] [Step 3/8]             Primary files in collection          : 20000 (19984 canonical | 16 from albums)
[ INFO  ] [Step 3/8]             Secondary files in collection        : 120 (0 canonical | 120 from albums)
[ INFO  ] [Step 3/8]         Canonical + Non-Canonical files          : 20120
[ INFO  ] [Step 3/8]             Canonical files (within year folder) : 19984 (19984 primary | 0 secondary)
[ INFO  ] [Step 3/8]             Non-Canonical files (Albums)         : 136 (16 primary | 120 secondary)
[ INFO  ] [Step 3/8]     Total Entities merged                        : 120
[ INFO  ] [Step 3/8]     Media Entities remain in collection          : 20000
[ INFO  ] ✅ Merge Media Entities completed in 17s
[ INFO  ]    Media Entities remain in collection: 20000
[ INFO  ] 
[ INFO  ] ▶️ --- Step 4/8: Extract Dates ---
[ INFO  ] [Step 4/8] Extracting metadata (this may take a while)...
[ INFO  ] [Step 4/8] Starting 32 threads (exif concurrency)
[WARNING] [Step 4/8] Native exif_reader failed to extract DateTime from G:\takeout-2026-04-18\.gpth-unzipped\Takeout\Google Photos\Photos from 2025\received_850086244414253(1).jpeg (image/jpeg). Falling back to ExifTool.
[WARNING] [Step 4/8] ExifTool did not return an acceptable DateTime for G:\takeout-2026-04-18\.gpth-unzipped\Takeout\Google Photos\Photos from 2025\received_850086244414253(1).jpeg.
[ INFO  ] [Step 4/8] Date extraction completed
[ INFO  ] [Step 4/8] === Telemetry Summary ===
[ INFO  ] [Step 4/8]     [READ-EXIF]
[ INFO  ] [Step 4/8]         Total Calls             :     13 (videos=4 | nativeSupported=9 | unsupported=0) - Total Time: 1s
[ INFO  ] [Step 4/8]         Native Direct           :      9 (Success:      8, Fails:      1) - Time:     0s - (headReads: 9, fullReads: 0)
[ INFO  ] [Step 4/8]         Exiftool Total          :      5 (Success:      4, Fails:      1) - Time:     0s
[ INFO  ] [Step 4/8]             Direct              :      4 (Success:      4, Fails:      0)
[ INFO  ] [Step 4/8]             Fallback (enabled)  :      1 (Success:      0, Fails:      1)
[ INFO  ] [Step 4/8] === Date Extraction Summary ===
[ INFO  ] [Step 4/8]     json: 19987 files
[ INFO  ] [Step 4/8]     exif: 12 files
[ INFO  ] [Step 4/8]     guess: 0 files
[ INFO  ] [Step 4/8]     jsonTryHard: 0 files
[ INFO  ] [Step 4/8]     folderYear: 1 files
[ INFO  ] [Step 4/8]     none: 0 files
[ INFO  ] [Step 4/8] Checking for truncated filenames...
[ INFO  ] [Step 4/8] Fixed 18 truncated filename(s)
[ INFO  ] ✅ Extract Dates completed in 18s
[ INFO  ]    Extracted dates for 20000 files, fixed 18 truncated filename(s)
[ INFO  ] 
[ INFO  ] ▶️ --- Step 5/8: Find Albums ---
[ INFO  ] [Step 5/8] Finding albums (this may take a while)...
[ INFO  ] [Step 5/8] Media with album associations: 133
[ INFO  ] [Step 5/8] Distinct album folders detected: 14
[ INFO  ] ✅ Find Albums completed in 0s
[ INFO  ]    Found 14 different albums (0 albums were merged)
[ INFO  ] 
[ INFO  ] ▶️ --- Step 6/8: Move Files ---
[ INFO  ] [Step 6/8] Moving files to Output folder (this may take a while)...
[ INFO  ] [Step 6/8] === Moving Files Summary ===
[ INFO  ] [Step 6/8]     Primary files moved: 20000         (ALL_PHOTOS: 20000, Albums: 0)
[ INFO  ] [Step 6/8]     Non-primary moves: 0               (ALL_PHOTOS: 0, Albums: 0)
[ INFO  ] [Step 6/8]     Duplicated copies created: 0       (ALL_PHOTOS: 0, Albums: 0)
[ INFO  ] [Step 6/8]     Symlinks created: 121              (ALL_PHOTOS: 0, Albums: 121)
[ INFO  ] [Step 6/8]     JSON refs created: 0               (ALL_PHOTOS: 0, Albums: 0)
[ INFO  ] [Step 6/8]     Deleted from source: 0             (ALL_PHOTOS: 0, Albums: 0)
[ INFO  ] [Step 6/8]     Failures: 0                        (ALL_PHOTOS: 0, Albums: 0)
[ INFO  ] [Step 6/8]     Total operations: 20121            (ALL_PHOTOS: 20000, Albums: 121)
[ INFO  ] ✅ Move Files completed in 1m 42s
[ INFO  ]    Moved 20000 primary files, created 121 symlinks
[ INFO  ] 
[ INFO  ] ▶️ --- Step 7/8: Write EXIF Data ---
[ INFO  ] [Step 7/8] Writing EXIF data on physical files in output (this may take a while)...
[ INFO  ] [Step 7/8] ExifTool available
[ INFO  ] [Step 7/8] Starting 32 threads (exif concurrency)
[WARNING] [Step 7/8] Batch metadata write failed — retrying files individually. Technical detail: TimeoutException: ExifTool stay-open command timed out after 600s
[WARNING] [Step 7/8] Video batch flush failed (32 files) - splitting: TimeoutException: ExifTool stay-open command timed out after 600s
[ INFO  ] [Step 7/8] Pending before final flush → Images: 9, Videos: 10
[ INFO  ] [Step 7/8] 16265 files got GPS set in EXIF data (primary=16265, secondary=0)
[ INFO  ] [Step 7/8] 19995 files got DateTime set in EXIF data (primary=19995, secondary=0)
[ INFO  ] [Step 7/8] Processed 20000 entities; touched 19995 files
[ INFO  ] [Step 7/8] === Telemetry Summary ===
[ INFO  ] [Step 7/8]    [WRITE DATE+GPS]:
[ INFO  ] [Step 7/8]         Native Direct    : Total: 15587 (Success: 15587, Fails: 0) - Time: 29334.245s
[ INFO  ] [Step 7/8]         Exiftool Direct  : Total: 678 (Success: 678, Fails: 0) - Time: 2115.441s
[ INFO  ] [Step 7/8]         Exiftool Fallback: Total: 0 (Recovered: 0, Fails: 0) - Time: 0.000s
[ INFO  ] [Step 7/8]         Total Files      : Total: 16265 (Success: 16265, Fails: 0) - Time: 31449.686s
[ INFO  ] [Step 7/8]    [WRITE ONLY DATE]:
[ INFO  ] [Step 7/8]         Native Direct    : Total: 3128 (Success: 3128, Fails: 0) - Time: 4668.054s
[ INFO  ] [Step 7/8]         Exiftool Direct  : Total: 602 (Success: 602, Fails: 0) - Time: 5469.628s
[ INFO  ] [Step 7/8]         Exiftool Fallback: Total: 0 (Recovered: 0, Fails: 0) - Time: 0.000s
[ INFO  ] [Step 7/8]         Total Files      : Total: 3730 (Success: 3730, Fails: 0) - Time: 10137.682s
[ INFO  ] [Step 7/8]    [WRITE ONLY GPS]:
[ INFO  ] [Step 7/8]         Native Direct    : Total: 0 (Success: 0, Fails: 0) - Time: 0.000s
[ INFO  ] [Step 7/8]         Exiftool Direct  : Total: 0 (Success: 0, Fails: 0) - Time: 0.000s
[ INFO  ] [Step 7/8]         Exiftool Fallback: Total: 0 (Recovered: 0, Fails: 0) - Time: 0.000s
[ INFO  ] [Step 7/8]         Total Files      : Total: 0 (Success: 0, Fails: 0) - Time: 0.000s
[ INFO  ] ✅ Write EXIF Data completed in 2h 46m
[ INFO  ]    Wrote EXIF data to 19995 files
[ INFO  ] 
[ INFO  ] ▶️ --- Step 8/8: Update Creation Time ---
[ INFO  ] [Step 8/8] Updating creation times (this may take a while)...
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled(2)\IMG_20171209_205855.jpg" (error=0)
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled(4)\VID_20180827_202301.mp4" (error=123)
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled(5)\VID_20180827_202301.mp4" (error=123)
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled(6)\VID_20180827_202301.mp4" (error=123)
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled\IMG_20201219_182851.jpg" (error=123)
[WARNING] [Step 8/8] CreateFile failed for "\\?\G:\takeout-2026-04-18-out\Untitled Albums/Untitled(1)\VID_20200516_112249.mp4" (error=123)
[ INFO  ] [Step 8/8] Update Creation Time Summary → updated: 20115 (physical=20000, shortcuts=115), failed: 6 (physical=0, shortcuts=6)
[ INFO  ] ✅ Update Creation Time completed in 13s
[ INFO  ]    Updated creation times for 20115 files
[ INFO  ] 
[ INFO  ] ====================================================================================================
[ INFO  ] DONE! FREEEEEDOOOOM!!!
[ INFO  ] Your Processed Takeout can be found on: G:\takeout-2026-04-18-out
[ INFO  ] 
[ INFO  ] Some statistics for the achievement hunters:
[ INFO  ] 	19995/20000 files got their DateTime set in EXIF data
[ INFO  ] 	16265/20000 files got their coordinates set in EXIF data (from json)
[ INFO  ] 	DateTime extraction method statistics:
[ INFO  ] 		json: 19987 files
[ INFO  ] 		exif: 12 files
[ INFO  ] 		guess: 0 files
[ INFO  ] 		jsonTryHard: 0 files
[ INFO  ] 		folderYear: 1 files
[ INFO  ] 		none: 0 files
[ INFO  ] 
[ INFO  ] In total GPTH took 2h 54m 09s to complete
[ INFO  ] ====================================================================================================
[ INFO  ] [SUCCESS] Processing completed successfully

Further information on the issue

I guess you need e.g. a 3GB file and use 2GB Takeout setting to reproduce this.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions