#!/usr/bin/python # # Removes duplicate values for multi-value EXIF tags, like IPTC keywords, from images. # # Usage: remove-exif-duplicates ExifTag1,ExifTag2,...,ExifTagN image1.jpg image2.jpg ... imagen.jpg # # Copyright: Miguel Angel Vilela import pyexiv2 import sys if len(sys.argv) < 3: print "Usage: %s ExifTag1,ExifTag2,...,ExifTagN" \ "image1.jpg image2.jpg ... imageN.jpg" % sys.argv[0] sys.exit(1) tags = sys.argv[1].split(',') images = sys.argv[2:] while "*.jpg" in images: images.remove("*.jpg") while "*.JPG" in images: images.remove("*.JPG") for image in images: im = pyexiv2.Image(image) im.readMetadata() for tag in tags: if tag not in im.iptcKeys(): continue tag_values = im[tag] if type(tag_values) == type(""): continue im[tag] = list(set(tag_values)) im.writeMetadata() print "Done with %s" % image