{"id":18221795,"url":"https://github.com/karlicoss/exifdb","last_synced_at":"2025-04-07T23:42:30.636Z","repository":{"id":191933415,"uuid":"685707735","full_name":"karlicoss/exifdb","owner":"karlicoss","description":"Keep EXIF (and other metadata) in a database and keep track of changes","archived":false,"fork":false,"pushed_at":"2023-09-01T00:13:50.000Z","size":33,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T20:05:08.335Z","etag":null,"topics":["exif","exiftool","metadata","metadata-management","photos","video","xmp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karlicoss.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-31T20:34:20.000Z","updated_at":"2023-09-01T13:34:19.000Z","dependencies_parsed_at":"2023-09-01T16:11:48.218Z","dependency_job_id":null,"html_url":"https://github.com/karlicoss/exifdb","commit_stats":null,"previous_names":["karlicoss/exifdb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fexifdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fexifdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fexifdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fexifdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karlicoss","download_url":"https://codeload.github.com/karlicoss/exifdb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247749973,"owners_count":20989712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exif","exiftool","metadata","metadata-management","photos","video","xmp"],"created_at":"2024-11-03T22:04:28.410Z","updated_at":"2025-04-07T23:42:30.616Z","avatar_url":"https://github.com/karlicoss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Still work in progress, just some vague notes and thoughts\n\n\n* Problem\nPhoto/video (\"media\") management software is a bit of a mess.\n\nFor example, in Digikam, depending on settings, certain metadata is written into Digikam's database, and other metadata ends up in photo/video EXIF (and other types of metadata).\nThe process isn't very transparent, and it's possible that your photos end up with metadata you don't want there, or vice versa, the software erases or mangles tags you don't expect to be touched.\n\nMedia galleries are a mess as well.\n\nDepending on the gallery software, different tags are supported, even for basic properties like media creation time.\nSo something that works in one gallery may not work in another, which locks you in and makes it harder to switch (or even evaluate different software).\n\nSome galleries like Google Photos don't support updating photo metadata once you've uploaded them.\nSo you really want to get the metadata right before uploading, unless you're a fan of manually deleting and reuploading again.\n\n* Solution (?)\nThis tool aims to do few things:\n\n- keep track of media metadata in an sqlite database.\n\n  From time to time you 'import' new metadata into the database and in case there were any changes you are presented with a diff. This gives you a chance to restore photos from a backup if you see any unexpeted changes.\n\n- check that media has reasonable metadata\n\n  - proper creation date\n  - timezone information (since usually datetime stored in photo is local time)\n  - GPS coordinates\n\n  It doesn't feel as much to ask, does it?\n  Yet, it can be surprisingly tedious to ensure, especially if your photos were collected over years from different cameras/phones; send to you by friends by social media, etc.\n\n- in case some metadata above is missing, the tool tries its best to offer you an automatic fix via =exiftool=\n\n  The metadata database mentioned above gives you additional reassurance that the tool won't mess up your media files.\n\n\n* Typical issues with metadata\n\nHere's an incomplete list of issues I noticed on my media files that the tool detects or aims to fix\n\n- some photos had =24= as an \"hour\" field in the creation date\n\n- sometimes =GPSDateTime= included =Z= at the end of timestamp, which will be a parsing error in most software\n\n- some photos only have =ModifyDate= instead of =CreateDate= or =CreationDate=\n\n  in this case the tool suggests you to fill =CreationDate= from other tags or infer from the filename\n\n- some photos don't have any proper datetime tags at all\n\n  in this case the tool tries to extract it from the filename or =GPSDateTime=\n\n- media shared via social media has creation date tags zeroed out (i.e. =0000-00-00 00:00:00=) and has no coordinates\n\n- some media is randomly missing =GPSPosition=, e.g. if you were on the tube/plane, or just GPS didn't wake up in time\n\n- most cameras/phones don't set =OffsetTimeOriginal= (timezone information)\n\n  in this case the tool tries to infer it from creation (local) time and GPS coordinates\n\n- different media types rely on different tags for creation time\n\n  E.g. jpg uses =DateTimeOriginal= whereas mp4 uses =CreateDate=\n\n- Digikam version 7 (Ubuntu 22.04) sometimes was stripping =GPSDatetime= from photos while editing unrelated metadata\n\n  TODO need to file a bug\n\n- Digikam version 8 with =exiftool= backend sometimes erases XMP tags [[https://bugs.kde.org/show_bug.cgi?id=473826]]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarlicoss%2Fexifdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarlicoss%2Fexifdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarlicoss%2Fexifdb/lists"}