Desktop Integration/EmbeddingExample
What
This page describes the issues which embedding license metadata attempts to resolve and basic steps for implementation.
Problem
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.
Solution
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.
How
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.