Implement "reverse" import by starting with individual images - #3
Open
qwhelan wants to merge 8 commits into
Open
Implement "reverse" import by starting with individual images#3qwhelan wants to merge 8 commits into
qwhelan wants to merge 8 commits into
Conversation
qwhelan
force-pushed
the
reverse_import
branch
from
December 28, 2025 21:34
6203187 to
3690ea5
Compare
qwhelan
force-pushed
the
reverse_import
branch
from
January 9, 2026 00:32
3690ea5 to
8d003de
Compare
Contributor
Author
|
A couple updates here:
|
tjhorner
reviewed
Mar 19, 2026
|
|
||
| this.logger.log(`New file detected; import queued for ${filePath}`) | ||
| this.logger.log(`New file detected; considering ${filePath}`) | ||
| if (filePath.endsWith(".360") || filePath.endsWith('.JPG')) { |
Owner
There was a problem hiding this comment.
probably want to make this case-insensitive
Comment on lines
+132
to
+137
| const { stdout, stderr } = await runCmd("exiftool", [ | ||
| "-location:all", | ||
| "-time:all", | ||
| "-n", | ||
| filePath, | ||
| ]) |
Owner
There was a problem hiding this comment.
I think we should probably use something like exiftool-vendored so we don't have to do all the brittle parsing stuff below
Contributor
Author
There was a problem hiding this comment.
Done. Needed to run npm install --workplaces false in backend/ to get a clean package-lock.json here
…l source media type
… GPS data via exiftool, and constructing the track as part of import
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not yet ready to merge, but more-or-less working locally version of #2 so wanted to get some feedback on the structure.
Basic approach is:
Start with a collection of GoPro Max images, assuming that they're named in a format like
GOPRO_MAX.20240629.104937.GSAT3081.JPGfor the momentGSis a GoPro photo identifier, andATis the sequence id (starting atAAwhen memory card is wiped, thenAB, etc). 3081 is a photo id that counts since last memory card wipe but is also sequential within a sequence (but might wrap around at 10,000)Create new queue for "reverse" import and process the photos with
exiftoolto get the embedded GPS/time dataheadingis embedded. Just setting to0for now but should be able to estimate from thetrackif not available in EXIFOn photo import, generate
geometryand use the date + sequence id as a track identifierO(n^2 log(n))so needs some optimization (eg, handle case where photos are imported in-order and can just append)Frontend seems to work as-is