{"id":15797397,"url":"https://github.com/james-see/iptcinfo3","last_synced_at":"2026-03-09T20:01:48.967Z","repository":{"id":54614509,"uuid":"70836149","full_name":"james-see/iptcinfo3","owner":"james-see","description":"iptcinfo working for python 3 finally do pip3 install iptcinfo3","archived":false,"fork":false,"pushed_at":"2025-12-02T17:55:46.000Z","size":3817,"stargazers_count":56,"open_issues_count":0,"forks_count":34,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-13T03:06:30.467Z","etag":null,"topics":["exif","iptc","metadata","photography","python3"],"latest_commit_sha":null,"homepage":"https://james-see.github.io/iptcinfo3","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/james-see.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":"jamescampbell","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-10-13T18:29:30.000Z","updated_at":"2025-12-02T17:55:50.000Z","dependencies_parsed_at":"2022-08-13T21:40:22.124Z","dependency_job_id":"f614481e-b81d-4ae2-a619-0109b2e3820d","html_url":"https://github.com/james-see/iptcinfo3","commit_stats":{"total_commits":132,"total_committers":20,"mean_commits":6.6,"dds":0.7045454545454546,"last_synced_commit":"9542c100e8b0fde171abc6ef64616fb9097d3b61"},"previous_names":["jamesacampbell/iptcinfo3"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/james-see/iptcinfo3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/james-see%2Fiptcinfo3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/james-see%2Fiptcinfo3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/james-see%2Fiptcinfo3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/james-see%2Fiptcinfo3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/james-see","download_url":"https://codeload.github.com/james-see/iptcinfo3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/james-see%2Fiptcinfo3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30309999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","iptc","metadata","photography","python3"],"created_at":"2024-10-05T00:07:46.773Z","updated_at":"2026-03-09T20:01:48.947Z","avatar_url":"https://github.com/james-see.png","language":"Python","funding_links":["https://patreon.com/jamescampbell"],"categories":[],"sub_categories":[],"readme":"``IPTCINFO 3``\n==============\n\nLike IPTCInfo but finally compatible for Python 3\n-------------------------------------------------\n\n\nPorted from Josh Carter's Perl IPTCInfo-1.9.pm by Tamas Gulacsi\n\nEver wish you add information to your photos like a caption, the place\nyou took it, the date, and perhaps even keywords and categories? You\nalready can. The `International Press Telecommunications Council (IPTC) \u003chttps://en.wikipedia.org/wiki/International_Press_Telecommunications_Council\u003e`_\ndefines a format for exchanging meta-information in news content, and\nthat includes photographs. You can embed all kinds of information in\nyour images. The trick is putting it to use.\n\nThat's where this IPTCInfo Python module comes into play. You can embed\ninformation using many programs, including Adobe Photoshop, and\nIPTCInfo will let your web server -- and other automated server\nprograms -- pull it back out. You can use the information directly in\nPython programs, export it to XML, or even export SQL statements ready\nto be fed into a database.\n\nWikidata item https://www.wikidata.org/wiki/Q137179516\n\nInstallation\n------------\n\nInstall from PyPI::\n\n    pip install IPTCInfo3\n\nOr with uv::\n\n    uv pip install IPTCInfo3\n\nOn Gentoo Linux: on `gentoo-zh overlay \u003chttps://github.com/microcai/gentoo-zh/tree/master/dev-python/iptcinfo3\u003e`_.\n\nRequirements\n------------\n\n- Python 3.8 or higher\n- No external dependencies required\n\nUsage\n-----\n\n``from iptcinfo3 import IPTCInfo``\n\n\nCreate new info object\n``info = IPTCInfo('doge.jpg')``\n\nPrint list of keywords, supplemental categories, contacts\n``print(info['keywords'])``\n``print(info['supplementalCategories'])``\n``print(info['contacts'])``\n\nGet specific attributes...\n``caption = info['caption/abstract']``\n\nCreate object for file that may not have IPTC data\n``info = IPTCInfo('such_iptc.jpg', force=True)``\n\nAdd/change an attribute\n``info['caption/abstract'] = 'Witty caption here'``\n``info['supplemental category'] = ['portrait']``\n\nLists for keywords, so you can just append!\n``info['keywords']).append('cool')``\n\nSave new info to file\n``info.save()``\n``info.save_as('very_meta.jpg')``\n\nFor real life usage example see https://gitlab.com/vitaly-zdanevich/upload_to_commons_with_categories_from_iptc/-/blob/master/upload_to_commons_with_categories_from_iptc.py\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjames-see%2Fiptcinfo3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjames-see%2Fiptcinfo3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjames-see%2Fiptcinfo3/lists"}