I want to publish my pictures with a CC-BY-NC license but I could not find a tutorial how store this information with my JPEG metadata.
Is there a best practice? Do services like Flickr, Google+ or Facebook read this information?
As @coneslayer notes, Creative Commons does indeed provide guidance for XMP information.
The main thing is to set xmpRights:UsageTerms to This work is licensed to the public under the Creative Commons Attribution-ShareAlike license http://creativecommons.org/licenses/bysa/2.0/ verify at http://example.com/pdfmetadata.html
That "verify" link is optional and should be a web site explaining the licensing in more detail. If you have such a web page, you should also set xmpRights:WebStatement to that URL.
They also recommend duplicating xmpRights:UsageTerms into dc:rights, because some people might use that tag instead.
You also can and should set XMP properties using Creative Commons' own schema, which defines cc:license, cc:morePermissions (for possible other allowed uses), cc:attributionURL, and cc:attributionName.
Use exiftool to add exif metadata easily from console. It is easy to install, already present in popular Linux distros (e.g. Ubuntu)
$ exiftool -by-line="[your name]" -CopyrightNotice="© [your name] ; \ Licence: Creative Commons cc-by-nc 3.0 United States \ (http://creativecommons.org/licenses/by-nc/3.0/us/)" \ -artist="[your name]" -Copyright="© [your name] ; \ Licence: Creative Commons cc-by-nc 3.0 United States \ (http://creativecommons.org/licenses/by-nc/3.0/us/)" \ TARGET-IMAGE.JPG
I use this little script, which you can easily adapt. It need Python2.6 (does not work with Python3 because FWIK the pyexiv2 library has not a Python3 version). This come pre-installed with practically all linux distributions; you may need to add the package
python-pyexiv2 in some of them. No idea on how to install on windows.
#! /usr/bin/python # -*- coding: utf-8 -*- # import sys import pyexiv2 # fimage = sys.argv metadata = pyexiv2.ImageMetadata(fimage) metadata.read() my_name = "Romano Giannetti" my_email = "email@example.com" copyr = "(c) " + my_name + " <" + my_email + ">" + ", All Rights Reserved" # # set exif: # exif_a="Exif.Image.Artist" exif_r="Exif.Image.Copyright" metadata[exif_a]=pyexiv2.ExifTag(exif_a, my_name) metadata[exif_r]=pyexiv2.ExifTag(exif_r, copyr) # # set XMP # key_auth="Xmp.dc.creator" key_rights="Xmp.dc.rights" metadata[key_auth]=pyexiv2.XmpTag(key_auth, (my_name, my_email)) metadata[key_rights]=pyexiv2.XmpTag(key_rights, copyr) # metadata.write()
I think is more or less self-explicative: if you need to change/add Xmp tags, you simply do
keytag_name="Xmp.tag.name" metadata[keytag_name]=pyexiv2.XmpTag(keytag_name, "this is the tag content")