This page describes the issues which embedding license metadata attempts to resolve and basic steps for implementation.


When a person creates a new piece of media (eg: a new photo) and they wish to release this creation under a Creative Commons license they must indicate that somehow. The usual method is to put a bit of text next to the image on a webpage saying something similar to "This work licensed under a Creative Commons Attribution 3.0 license" with a link to the license. There are common examples of this on many web media hosting services such as flickr or vimeo.

However, as soon as someone else downloads the file from the webpage there is no longer any contextual license information. It is now up to the downstream user to be accurate and faithful to the terms of the license. This undoubtedly means knowing which license the work is released under and unless they made a note of it somewhere else they are apt to forget.


If, however, the license information was embedded into the file at the time of creation (or sometime soon after by the creator) no matter where the file went (webpages, desktops, CDs, etc) the license information will always be readable by a downstream user. Now the user of the media will no longer need to keep track of the license information by hand which is conducive to mistakes. With the information in the file that should never be an issue.


Inkscape is an Free/Open Source vector based drawing program that allows users to embed license information into the file metadata. The Inkscape developers have implemented this using their own method in C++. To see their implementation, check out their source code or just view the trunk/src/rdf.cpp file.

Here is what their license choice function looks like to the user:



Many file formats explicitly include a way to include additional information into the metadata of the file in a standard way. In addition, many of these standards also include an explicit 'copyright' or 'license' field. This wiki includes a table of many file formats and their associated metadata standard.

Thus, to implement this feature all that is needed is a way to set the correct field for the specified file type to a value that indicates the license choice f the user. Luckily, Creative Commons has developed a piece of software that does this for you for many file types called liblicense.

Additionally, you can use liblicense to develop a license choosing function to your application (similar to what LicenseChooser.js does for web applications, see, for example, this file upload example.

See Also

Metadata Display Example
Back to the HowTo.
Back to Desktop Integration.
Back to Developers.