Where does Immich get the timezone from in MOV files?
I’m trying to figure out how Immich detects the timezone for MOV videos.
I have two .mov files, both shot on an iPhone:
One shows the correct timezone in Immich (GMT+2, Paris)
The other one doesn’t — it just shows the time with no timezone info, so it ends up being off by a couple of hours.
I tried fixing it with exiftool by writing timezone info into a bunch of fields (QuickTime, Track, Media, Keys, UserData, XMP, FileModifyDate, etc.), but no matter what I do, Immich still ignores it after a metadata rescan.
So I’m wondering:
👉 Which exact tag does Immich read the timezone from for MOV files?
I’d like to replicate whatever iPhones do so that the timezone shows up correctly.
Thanks!
3 Replies
:wave: Hey @ninjaboss,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs docs
- Container Status: docker ps -a docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
2. :ballot_box_with_check: read applicable release notes.
3. :ballot_box_with_check: reviewed the FAQs for known issues.
4. :ballot_box_with_check: reviewed Github for known issues.
5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
6. :ballot_box_with_check: uploaded the relevant information (see below).
7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close command, and re-open it later if needed.
Successfully submitted, a tag has been added to inform contributors. :white_check_mark:I checked the Immich source code and found it looks for dates in this order:
Then I ran this command to compare both MOVs:
Results:
Both have the same
Keys:CreationDate with +02:00, but only the plain one shows the correct timezone in Immich, the (0) version just shows today’s modified date.
No idea what makes Immich read the timezone in one and ignore it in the other, any thoughts?
The weird part: the good file shows “Europe/Paris (GMT+2)” in Immich, but the timezone dropdown only lets me choose Europe/Paris (GMT+1). Also, GMT+2 in the dropdown has multiple cities, so a plain +02:00 offset shouldn’t be enough to conclude “Paris.”
Does anyone know where Immich picks up the city / timezone name (like Europe/Paris) for MOV files? I can’t find any tag that encodes the city, only offsets like +02:00.Successfully submitted, a tag has been added to inform contributors. :white_check_mark: