Skip to content

Conversation

@andreymaznyak
Copy link

@andreymaznyak andreymaznyak commented May 3, 2025

Implement feature request #11564

Description

This is the first step towards full support for viewing spatial photos and videos in VR. I’ve added EXIF tag analysis to detect Apple Spatial Video. Instead of adding new columns to the EXIF table, I placed this information in the projectionType field—semantically, it seemed like the closest match. If you have ideas on how to improve this, I’d be happy to hear them.

I also added a 3D icon on the frontend if projectionType starts with SPATIAL, so that this logic can be extended in the future to support other 3D media formats.

How Has This Been Tested?

You can upload apple heic spatial photo and video and check exif information about it.

Screenshots (if appropriate)

Screenshot 2025-05-03 at 21 02 25

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

@andreymaznyak andreymaznyak changed the title 11564 Support recognize apple spatial media feat: Support recognize apple spatial media May 3, 2025
@andreymaznyak andreymaznyak changed the title feat: Support recognize apple spatial media feat: support recognize apple spatial media May 3, 2025
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need to add the translation here. Adding it to en.json is the only requirement

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@andreymaznyak andreymaznyak force-pushed the 11564-support-apple-spatial-media branch 2 times, most recently from 1e74f74 to 0fd9b77 Compare May 5, 2025 11:18
@andreymaznyak andreymaznyak force-pushed the 11564-support-apple-spatial-media branch from 0fd9b77 to c903e19 Compare May 5, 2025 11:20
@mertalev
Copy link
Member

mertalev commented May 6, 2025

I think projectionType should be changed to an enum in the DB if it's being used like this. A magic string is not a good way to track this metadata.

@andreymaznyak
Copy link
Author

I think projectionType should be changed to an enum in the DB if it's being used like this. A magic string is not a good way to track this metadata.

Implement enum, add create safe migration, if projection type have unexpected values

Copy link
Member

@zackpollard zackpollard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some errors in the build with the metadata service not using the new enum type.

@zackpollard
Copy link
Member

Hey, I am going to close this for now due to it being stale for quite a while. If you do get time to fix this please feel free to make a new PR or comment to have this one re-opened 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants