How Date Taken Is Read and Updated - ellman12/Graphical-Photo-Organizer GitHub Wiki

Date Taken data of photos and videos is read using my slick DateTakenExtractor NuGet package. GPO uses its GetDateTakenAuto method, which first tries examining the internal metadata of the item. If the method can't find any data there, it then tries examining the filename for common filename timestamp patterns like 20210512_104433.jpg, IMG_20210512_120126.jpg, etc. If the method can't find Date Taken in the metadata or the filename, it returns null. If you are sorting manually, then the item can't be sorted like an item that does have a Date Taken. If you then assign it a date (and time, if updating metadata), you will be able to sort it. You could also skip it or send it to the Unknown Date Taken folder. If this happens in an AutoSort session, there are three modes for AutoSort that control how it handles this. More info on that here.

Internal Date Taken metadata is updated using the command line program exiftool. This feature is most useful for jpg/jpeg image files, and mp4/mov video files, as they are designed to store this kind of data. Png files can kind of/sort of hold Date Taken metadata, but it's not really standardized. Mkv files are weird and I don't think they can contain much, if any, metadata like this. But GPO/exiftool can still write metadata to them anyways.

In Settings, there are two settings that control when internal metadata is updated. More info on that here.