[Feature]: Metadata Editor #98

Closed
opened 2026-02-04 17:36:01 +03:00 by OVERLORD · 6 comments
Owner

Originally created by @Nonobis on GitHub (Jun 19, 2022).

Originally assigned to: @panoti on GitHub.

Feature detail

Hello,

A metadata editor could be very cool feature, with update of metadata directly on file

For fixing date/time of files or gps coordinate etc ...

Platform

Web

Originally created by @Nonobis on GitHub (Jun 19, 2022). Originally assigned to: @panoti on GitHub. ### Feature detail Hello, A metadata editor could be very cool feature, with update of metadata directly on file For fixing date/time of files or gps coordinate etc ... ### Platform Web
Author
Owner

@r3nor commented on GitHub (Aug 10, 2022):

This would be great!

@r3nor commented on GitHub (Aug 10, 2022): This would be great!
Author
Owner

@panoti commented on GitHub (Aug 29, 2022):

For this issue, I suggest some solutions:

  1. Wrap native tools like exiftool, exiv2 by using childprocess to parse and write metadata.
    • Pros: so easy, best performance, always updated, support many file types.
    • Cons: heavily depend on perl (only with exiftool), install more binary packages (exiv2)
  2. Wrap native libs like exiv2 by using node-gyp. Exiv2 also provide API so that other app can communicate to.
    • Pros: best performance, always updated, support many file types.
    • Cons: not easy to implement with node-gyp.
  3. Transpile native libs like exiv2 to wasm.
    • Pros: best performance, always updated, support many file types.
    • Cons: pretty difficult to transpile C++ to wasm.
  4. Using pure javascript lib but they're outdated like piexifjs.
    • Pros: so easy
    • Cons: outdated, lack of support, performance issues.
@panoti commented on GitHub (Aug 29, 2022): For this issue, I suggest some solutions: 1. Wrap `native` tools like [exiftool](https://exiftool.org/), [exiv2](https://exiv2.org/) by using [childprocess](https://nodejs.org/api/child_process.html) to parse and write metadata. - **Pros**: so easy, best performance, always updated, support many file types. - **Cons**: heavily depend on perl (only with exiftool), install more binary packages (exiv2) 2. Wrap `native` libs like `exiv2` by using [node-gyp](https://github.com/nodejs/node-gyp). Exiv2 also provide API so that other app can communicate to. - **Pros**: best performance, always updated, support many file types. - **Cons**: not easy to implement with node-gyp. 3. Transpile `native` libs like `exiv2` to wasm. - **Pros**: best performance, always updated, support many file types. - **Cons**: pretty difficult to transpile C++ to wasm. 4. Using `pure` javascript lib but they're **outdated** like [piexifjs](https://github.com/hMatoba/piexifjs). - **Pros**: so easy - **Cons**: outdated, lack of support, performance issues.
Author
Owner

@JVT038 commented on GitHub (Sep 13, 2022):

Additionally, can you also add a feature for mass metadata editing?

I have thousands of videos and images from WhatsApp and they're all in IMG-YYYYMMDD-WA0001.JPG format, but don't have any exif data, so Immich automatically assumes they're taken on the file creation date (which in my case is March 2022). So there are currently a lot of images from 2017, 2019, 2020, etc. which are placed in March 2022, because they're from WhatsApp without exif data.
I'm currently fixing this with the exiftool, which takes the filename and sets the exif data based on the filename, but could this be done in the web ui? I'm sure I'm not the only one uploading WhatsApp images to Immich

@JVT038 commented on GitHub (Sep 13, 2022): Additionally, can you also add a feature for mass metadata editing? I have thousands of videos and images from WhatsApp and they're all in `IMG-YYYYMMDD-WA0001.JPG` format, but don't have any exif data, so Immich automatically assumes they're taken on the file creation date (which in my case is March 2022). So there are currently a lot of images from 2017, 2019, 2020, etc. which are placed in March 2022, because they're from WhatsApp without exif data. I'm currently fixing this with the exiftool, which takes the filename and sets the exif data based on the filename, but could this be done in the web ui? I'm sure I'm not the only one uploading WhatsApp images to Immich
Author
Owner

@r3nor commented on GitHub (Sep 13, 2022):

I think that, following on what @JVT038 said, it would be a very good feature to fallback on filename timestamp (if available) when no metadata is found. Most images from phones or cameras contain the timestamp on the filename, so it would be a good fallback before using the modified date.

@r3nor commented on GitHub (Sep 13, 2022): I think that, following on what @JVT038 said, it would be a very good feature to fallback on filename timestamp (if available) when no metadata is found. Most images from phones or cameras contain the timestamp on the filename, so it would be a good fallback before using the modified date.
Author
Owner

@jkaplon commented on GitHub (Sep 15, 2022):

Might this also include a "Description" field?

gphotos has it in the metadata panel, and it's proven useful with pics of kid drawings (where there's no chance of success by an image classifier).

Hopefully this is a well-supported EXIF item and will be easy to add...but I don't want to be making scope-creep-assumptions.

@jkaplon commented on GitHub (Sep 15, 2022): Might this also include a "Description" field? gphotos has it in the metadata panel, and it's proven useful with pics of kid drawings (where there's no chance of success by an image classifier). Hopefully this is a well-supported EXIF item and will be easy to add...but I don't want to be making scope-creep-assumptions.
Author
Owner

@samip5 commented on GitHub (Jan 19, 2023):

The exif parsing is actually done with exiftool-vendored library now. :)

@samip5 commented on GitHub (Jan 19, 2023): The exif parsing is actually done with exiftool-vendored library now. :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#98