Syndication/formats/feed
From Bjoern Hassler
- Working with Yahoo Media
- Using media rss to syndicate and share media
- Example feeds
- Formats
- metafeed
- feedheader
- short item
- full item
- The yahoo media content and group elements
- Enclosures in yahoo media, rss, and atom
- Media rss media group element
- Media rss media group alternatives scheme
- Appendix
- Atom media extension
- Overview of images in rss
Contents |
[edit] 1 Feed format at item level
For head information see header.
We describe an item in rss, but the atom equivalent is straight forward: We mostly just use basic elements from rss, most other things are atom/yahoo. To have an <entry> rather than an <item> is straigt forward.
[edit] 2 The rss-item (or <atom:entry>)
<item> <!--
[edit] 2.1 Basic title, description, pubDate, id
A number of standard elements.
--> <title>The title of this media item</title> <media:title s:type="subtitle">How to set up an item in steeple</media:title> <media:title s:type="short">The title</media:title> <!-- The description. (In atom, this would be <summary>) --> <description>Description ....</description> <!-- The standard rss:pubDate or atom:updated is used for the date on which the rss item was changed. Not for creation/first publication - see more dates below. --> <pubDate></pubDate> <!-- rss:guid, or atom:id If you have the content in several places, the guid needs to identify the item irrespective of url --> <guid isPermaLink="false"></guid> <atom:link rel="self" href="....." /> <!-- id provided for aggregator. Bjoern is still not quite sure how to do that. --> <atom:link rel="http://purl.org/steeple/id" href="..." /> <!--
[edit] 3 Institutional classification
"Organisation" is mandatory (if not given at feed level), others are not mandatory. Institutional or departmental classification: not needed here if included in the feed head
--> <atom:category scheme="http://purl.org/steeple/organisation" term="http://www.ox.ac.uk" label="Oxford University" /> <atom:category scheme="http://purl.org/steeple/division" term="<e.g. via LDAP>" label="Section of Physical Sciences" /> <atom:category scheme="http://purl.org/steeple/department" term="<e.g. via LDAP>" label="Physics Department" /> <atom:category scheme="http://purl.org/steeple/group" term="" label="" /> <!-- For 'term' e.g. can use LDAP identifier. terms needs to be identified at http://purl.org/steeple/department --> <atom:category scheme="http://purl.org/steeple/department" term="CARET" label="Centre for Applied Research in Educational Technologies" /> <--
[edit] 4 Subject classification
Need to adopt a classification.
- Library of congress? British Library?
- Laurian to look at existing mappings
--> <atom:category scheme="...british library..." term="..." label="..." /> <!-- additional classification into iTunes subjects --> <atom:category scheme="http://www.itunesu.com" term="101" label="General Science" /> <atom:category scheme="http://www.itunesu.com" term="104101" label="..." /> <atom:category scheme="http://www.itunesu.com" term="108" label="..." /> <!-- local classifications can also be added --> <atom:category scheme="http://www.open.ac.uk/.../bluelist" term="..." label="..." /> <!--
[edit] 5 credit-type description for this piece.
One of the key things missing from rss/atom is a description of people appearing in the video, appropriate for academic contexts. The closet we can get to re-using existing structures is to use the media:credit construct, with a new scheme. See feeds/credit
- Human-readable versions of credits/roles.
- Laurian to make suggestion for machine-readable versions.
--> <media:credit role="presenter" scheme="http://purl.org/steeple/credit">Prof. Dr. A. B. C. Smith-Jones (University of Oxford)</media:credit> <media:credit role="principal lecturer" scheme="http://purl.org/steeple/credit"></media:credit> <media:credit role="interviewer" scheme="http://purl.org/steeple/credit"></media:credit> <media:credit role="producer" scheme="http://purl.org/steeple/credit"></media:credit> <media:credit role="producer institution" scheme="http://purl.org/steeple/credit"></media:credit> <media:credit role="creator" scheme="http://purl.org/steeple/credit"></media:credit> <!-- Agree that <author> is not used by the aggregator, because it's ambivalent. --> <author>Not Used</author> <!--
[edit]
Note: For detailed information on media:content, see media:content.
--> <!-- Add enclosure, to ensure compatibility with broadest range of feedreaders. Enclosure content is duplicated in media:group below --> <enclosure ... /> <media:group> <!-- optional: --> <media:title>lecture recording</media:title> <!-- Optional: The primary mediatype: - audio - video - screencast - learningobject - document --> <atom:category scheme="http://purl.org/steeple/mediatype" term="" label="" /> <!-- The nominal duration --> <s:duration></s:duration> <media:content url="url" fileSize="length" type="type" medium="video" isDefault="true" expression="full" bitrate="128" height="200" width="300" duration="185" s:FlashCompatible="9.0.115.0" s:transport="streaming,pseudostreaming,download" s:version="..." lang="en" /> <!-- If there are alternative versions of the same media item, they can follow in the same media:group, by adding media:content items. Those items are structured the same as the above item, but we omit most attributes for brevity. If items are available via P2P, add the <media:peerLink> element to <media:content> <media:content ...><media:peerLink type="application/x-bittorrent " href="http://www.example.org/sampleFile.torrent" /></media:content> --> <media:content url="url2" fileSize="length" type="type" medium="video" isDefault="false" expression="full" bitrate="1024" height="600" width="900" duration="185" ... lang="en" > <media:peerLink type="application/x-bittorrent " href="http://www.example.org/sampleFile.torrent" /> <media:hash algo="...">....</media:hash> </media:content> <!-- Audio versions, and audio descriptions should also be put into the same media:group, if they relate to the same media item. --> <media:content url="url3" s:rel="audio track" .... /> <media:content url="url4" s:rel="audio description" .... /> <media:content url="url4" s:rel="commentary" .... /> <!-- We added "s:rel" or we do this: <media:content url="url3"><media:category scheme="http://purl.org/steeple/rel" label="audio track">audio track</media:category></media:content> The latter is cleaner in terms of existing specs, but it's longer. --> <media:content url="url5" s:rel="transcript" url="....pdf" /> <media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="" s:type="keyframe|slide|thumb|cover" s:attribution="" /> <!-- Attribution for images? E.g. where the image is CC-By --> <!-- representation of subtitles --> <media:text start="00:00:00.000" xml:lang="en" s:type="cc">content for close captions / subtitles</media:text> <media:text start="00:00:00.000" xml:lang="en" s:type="subtitles">content for close captions / subtitles</media:text> <!-- where subtitles are in an external file, the <media:subTitle> can be used --> <media:subTitle type="application/smil" lang="en-us" href="http://www.example.org/subtitle.smil" /> <!-- additional suggestions --> <media:text start="00:00:00.000" xml:lang="en" s:type="keywords">timed keywords</media:text> <media:text start="00:00:00.000" xml:lang="en" s:type="description">additional description</media:text> <media:text start="00:00:00.000" xml:lang="en" s:type="chapter">chapter</media:text> </media:group> <media:group> <!-- More media groups might follow, or other media:content items if there is only one version --> </media:group> <media:content url="url5.pdf" expression="full" .... ><media:title>Lecture slides as pdf</media:title></media:content> <media:content url="url6.mp3" expression="full" .... ><media:title>Further reflections on the main media item</media:title></media:content> <!-- media related information ends --> <!--
[edit] 7 additional information
--> <!-- rss:link, treated the same as first <atom:link rel="related"> --> <link></link> <!-- --> <atom:link rel="http://purl.org/steeple/context" href="" title="View this item in the original context at Oxford University">View this item in the original context at Oxford University</atom:link> <!-- spacetime related information Laurian to look up. - creation of media (i.e. the date of the event) - first publishing of media item - updated is covered in rss:pubDate/atom:created --> <s:date type="creation">date of event</s:date> <s:date type="first published">date of event</s:date> <!-- To do: * http://www.georss.org/georss as "<georss:point>45.256 -71.92</georss:point>" ? <georss:where><gml:Point><gml:pos>45.256 -110.45</gml:pos></gml:Point></georss:where> c.f. also YouTube. --> <georss:point>45.256 -71.92</georss:point> <!-- ideally we would want to be able to describe several points .... --> <!-- To specify keywords, we use media:keywords. --> <media:keywords>a, b, c</media:keywords> <dcterms:valid> start=2002-10-13T09:00+01:00; end=2002-10-17T17:00+01:00; scheme=W3C-DTF </dcterms:valid> <!--
[edit] 8 Licensing
--> <!-- Copyright holder and license needs to be indicated. We recommended this: --> <media:copyright url=".......">Oxford University</media:copyright> <media:license type="text/html" href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution 3.0 United States License. Add attribution here: This item was produced by <a href="...">Dr. A. Smith</a>.</media:license> <!-- using this contstruct has several advantages: It allows the specification of any license, and we can specify the url and text in the same element. However, if the license is CC, add <cc:license> for compatibility with other feedreaders. --> <cc:license>http://www.creativecommons.org/licenses/by-nc/1.0</cc:license> <!-- but this is not mandatory for the Steeple aggregation. Note also <cc:attributionName/> <cc:attributionURL/> --> </item>