Syndication

From Creative Commons
Jump to: navigation, search

License statements may be included in various synication formats, generally at the feed and item level, where the latter overrides the former.

RSS 1.0

http://web.resource.org/rss/1.0/modules/cc/

RSS 2.0

http://backend.userland.com/creativeCommonsRssModule

Atom 1.0

http://ietfreport.isoc.org/idref/draft-snell-atompub-feed-license/

Human-visible notice

Some podcast players display the contents of a copyright element found in a feed. Example usage, not really intended to be machine-parsable, customize for communication with human readers, but do include URL of the relevant CC license and most importantly URL where users can get back to your site:

<copyright>All the songs in this podcast, and the podcast itself, are licensed to the public under http://creativecommons.org/licenses/by-nc-sa/1.0/ verify at http://magnatune.com/info/openmusic</copyright>

Licensed Content Discovery

Not all feeds include license metadata. In psuedocode, here are heuristics for discovering licensed content via feeds, perhaps useful in particular for aggregators.

function feedItemLicense(feedItem) {
    # license found for feed item URL (e.g., rel="license")?
    if (feedItem.license() != null) {
        return feedItem.license();
    }
    # license found at feed top level?
    if (feedItem.feed().license() != null) {
        return feedItem.feed().license();
    }
    # no explicit license in feed, fetch feed item URL
    feedItemContent = httpGet(feedItem.itemURL());
    if (parseLicenseFromHTML(feedItemContent) != null) {
        return parseLicenseFromHTML(feedItemContent);
    }
    # no license found in content at feed item URL, fetch
    # item referred to in enclosure if there is one,
    # look for embedded metadata
    if (feedItem.enclosure() != null) {
        enclosureContent = httpGet(feedItem.enclosure());
        return parseLicenseFromMedia(enclosureContent);
    }
}

This is obviously just a sketch. Aggregators may wish to use different heuristics for different feeds. Different aggregators will want to be more or less aggressive -- e.g., many will not want to go through the step of downloading and attempting to parse enclosure content. See Content Curators for some sites with feeds of CC licensed content.

Consider implementation of the above feed discovery heuristics in PHP and other languages a developer challenge.