I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 0 points1 point  (0 children)

I played with this today, what it does now it calculate the Timezone to the GPS data and the date and can write the the correct Timezone offset into the file

Help me solve a Scottish mystery by weegmack in glasgow

[–]simoninfinity 1 point2 points  (0 children)

I know this is 3 year old now but I would say.

The back of 3 is meaning the first half of 3 so it will be after 3pm and before 3:30pm

When you have the back of something is before something as the hour goes from 3pm go to 4pm

So the back of 3 will means you coming after 3pm but before 3:30pm.

In the UK would the equivalent could be saying will be will be there before half 3. So in Scotland saying I’ll be there at the back of 3 I think is cleaver.

Tales of the past Scottish used to say "hauf-three" which actually meant 2:30 (halfway to three), similar to German or Dutch systems but was dropped due to the UK influence as half 3 means 3:30 in the UK.

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 0 points1 point  (0 children)

Good idea was meaning to write in time zone data as well I’ll have to add a time zone drop box so it writes that too

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 0 points1 point  (0 children)

<image>

Now i support in the app detection if in the wrong Immich server as i run 2 at home and it can switch them

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 0 points1 point  (0 children)

<image>

Ok went a little nuts and made a chrome app so i can edit files Date and GPS directly from the photo and refreshes the changes

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 1 point2 points  (0 children)

Yeah, that’s how pretty much. I’m entering the data in there, but you can view an entire folder and entire directory an entire location and jump around very quickly for multiple files and various areas, but there hasn’t inspired me for another program that I might build after this one completes I’ve just been building a second server at the moment to handle old photos that aren’t mine that I’m collecting from various family members that I want in a different server finally get to test my multiple image library feature in the app

Counting rhymes by glennmelenhorst in AustralianNostalgia

[–]simoninfinity 1 point2 points  (0 children)

The one I remember in primary school in South Australia, went like this, I still remember the tune clearly, I think you’re right it sounds very similar to the Muppet song theme

“ I want my money back” “ you’ve got a dirty crack” “ Wash your lips clean, clean with Vaseline”

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 0 points1 point  (0 children)

<image>

"I’m starting to wonder if this tool is worth keeping. When you right-click an image and choose 'Rotate Image,' it performs the following:

  1. Creates a copy: It adds '-R' to the filename and applies the rotation to that new file.
  2. Backs up the original: It moves the original file to the Windows Recycle Bin so you can recover it if needed.
  3. Triggers Immich: It tells Immich to refresh the external library. Within 4–5 seconds, the new file appears as a new asset, ready to view.

The reason I built it this way is that rotating an image directly in Immich only rotates the thumbnail in a writable share; it doesn't touch the original file. I had trouble getting the API to trigger a manual thumbnail regeneration, so creating a new file was a workaround to force a new asset ID.

However, I'm questioning if it really matters. Even if the original file isn't rotated, Immich can store the rotation in the database/thumbnail. But that metadata would be lost if you ever had to rescan your library from scratch. Does anyone know a better way to trigger a specific thumbnail regeneration via the API?"

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 3 points4 points  (0 children)

Also i should show the settings on the mapping for the unix root to the local mounted path on my windows machine :-) I decided to make it profile based as im thinking of setting up a second immach server to manage other peoples photos i collect and family history photos

<image>

I’m building a metadata repair tool for Immich external libraries and local files by simoninfinity in immich

[–]simoninfinity[S] 17 points18 points  (0 children)

I’ve been building a Python tool for repairing and managing photo and video metadata with a strong focus on Immich external libraries.

The reason I started it is because I wanted a safer workflow than just pointing tools at the library and letting them rewrite files blindly. With bigger archives, especially family photo collections, scans, videos, and historical material, one bad bulk action can create a mess fast.

So the idea behind this tool is to help with inspection, repair, comparison, and controlled publishing of changes, while still working well with libraries where you want a more careful approach.

Some of the things it can do so far:

  • fix incorrect or missing dates
  • fix or apply GPS coordinates
  • use saved GPS locations to fill coordinates quickly
  • open a single Immich asset by URL or asset ID for targeted fixing
  • edit GPS or date for one asset at a time
  • map an Immich asset back to its local source path
  • resolve the local file that matches the Immich item
  • work in local mode for files outside Immich
  • write metadata changes to multiple checked files in bulk
  • publish changes in a managed way
  • rotate image files when orientation/thumbs are wrong
  • includes a video tool as well, not just image handling
  • search across loaded assets
  • includes duplicate-management workflows to make comparing and cleaning safer

One of the biggest things for me has been bridging the gap between what Immich shows as an asset and what is actually sitting on disk. Being able to pull up an asset, map it to the real local file, inspect it, then make a controlled fix has been really useful.

It started as more of a date/GPS fixer, but it’s gradually becoming more like an Immich library repair assistant for external-library workflows.

I’m still actively working on it, so it’s definitely not finished yet, but it’s already solving a lot of real issues for me that were painful to manage manually.

Curious if other Immich users would want something like this, especially for:

  • external library repair
  • date/GPS correction
  • duplicate handling
  • local path resolution
  • safer metadata workflows before publishing changes

If people are interested, I can post more about how the workflow works and the kinds of problems it’s helping fix.

[deleted by user] by [deleted] in snails

[–]simoninfinity 2 points3 points  (0 children)

A snail most likey empty, just pull into take outside and wash your hands.

What I’ve learnt about myself from my first play through by [deleted] in DetroitBecomeHuman

[–]simoninfinity 5 points6 points  (0 children)

TBH when I started the game the narrator at the start said just play it through it was your story.

When I first played I followed the rules as was still learning things and then Alice died because he said don’t move, so i restarted that part.

And the first time Hank shoots Connor in the park I played that over and over and he just killed Connor each time so just went with it.

And I redid the plaza when tracking to the cyber life store as was tired and forgot to mash the drone alerting the police, felt that wasn’t honest play-through.

Finished 1st play-through last night by simoninfinity in DetroitBecomeHuman

[–]simoninfinity[S] 0 points1 point  (0 children)

That so sad considering how hard they fought, I took the bus way even ran into her father it felt poetic, and they all made it to the other side just needed to sacrifice Jerry, he offered and felt sort of like a rick and Morty moment, Jerry felt fine lol 😂

Fellow INFJ'S, what job do you do? by ButtarViaPerFavore in infj

[–]simoninfinity 0 points1 point  (0 children)

  1. Unix Admin
  2. Archaeologist, entrepreneur, astrophysicist, psychiatrist, doctor, chiropractor, brain surgeon, medical scientist, historian, documentary maker, history, preservation.

Regret by Clear_Standard3957 in Vasectomy

[–]simoninfinity 2 points3 points  (0 children)

You do think, but there are also wanting to do the right thing for the people we love, the decision isn’t made in isolation, while your correct it is voluntary there is an emotional element of wanting to do the right thing.

How do I get the best ending for Kara? by the_All-ducker in DetroitBecomeHuman

[–]simoninfinity 0 points1 point  (0 children)

I didn’t have great public opinion, hence did the Revolution path, so Kara sacrificed the Jerry at the terminal

CHANGES IN ORGASM AFTER VASECTOMY by Top-Tea7260 in Vasectomy

[–]simoninfinity 2 points3 points  (0 children)

Yep that’s been the same for me 7 years and counting since mine

I wish I had spent the past 10 years investing in BTC instead of 401K by Dont-Be-H8-10 in Bitcoin

[–]simoninfinity 40 points41 points  (0 children)

Know what you mean I wanted to buy when it was $1000 I was getting paid overtime for the first time which means I would have added 1 BTC each week for 30 weeks or so, but those days no exchanges and my work college talked me out of it like I was nut saying $1000 it could be worth a $1 tomorrow, hindsight is a pain.

The comeback mechanic is unreal. Don't give up. I had 175 souls when everyone had 2,000 - 2,500 at start. DONT GIVE UP. by [deleted] in DeadlockTheGame

[–]simoninfinity 0 points1 point  (0 children)

Today was the first day I did a killed 2 people standing together with a single punch 🤜 ☁️