RSS and Podcasting
This is a presentation. If you'd like to view all the slides like a normal web page, you can.
What Is Syndication?
- Allows for users to get updated content without checking your site.
- Allows you to notify users of updated content even if you don't show them all of the content.
- A couple file formats to allow this content to move around.
RSS: A Convulsive History
- Created by Netscape, inspired by Radio Userland scriptingNews format
- Versions you may see in the wild: .90, .91, .92, 1.0 and 2.0.
- More info
- RSS 2.0 Spec
Atom: Because Everyone Hates Dave
- Created by a bunch of people who hate Dave Winer
- Ok, they really just wanted a consistent approach to feeds, and to combine that with publishing.
- Versions you may see in the wild: .3 and 1.0
- The 1.0 Draft Spec
RSS 2.0: Barebones Example
<rss version="2.0">
<channel>
<title>My Site Title</title>
<link>http://site.com</link>
<image>
<url>http://site.com/logo.gif</url>
<title>My Site Title</title>
<link>http://lawver.net</link>
</image>
<description>
My site is the coolest site that ever was. It's neato and will let you do all kinds of really neat things.
</description>
<item>
<title>My Latest Rant</title>
<link>http://site.com/my_latest_rant</link>
<description>I hate stuff. Stuff reallys upsets me.</description>
</item>
</channel>
</rss>
RSS 2.0: Stuff You Can Add
- In channel:
- dc:creator: The e-mail address of the site admin or author. Useful in blogs, but not much else.
- dc:date: Last update of the file.
- In item:
- enclosure: This is what the podcasters use to "attach" files to a post. You'll see them in Topix feeds as well.
- dc:date: Time this item was posted or updated.
- dc:subject: Category or "tag" for this post. You sometimes see multiples.
- content:encoded: Usually the full content of the article. Some people put it in description, but that's not really "proper".
RSS: Issues!
- Convulsive history has led to confusion about the spec, and a lot of varied implementations both in feeds and readers.
- Descriptions come in all kinds of formats - text/plain, raw HTML and escaped HTML. All of this plays havok with parsers.
- No clean or clear way to extend it.
Atom: Barebones
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
Atom: Common Optional Elements
- In feed:
- subtitle: Like RSS's description
- link rel="alternate": A link back to the site.
- rights: Copyright or Creative Commons rights notice.
- In entry:
- author
- category
- content: The encoded full content.
Atom: Issues!
- It's new, and although finally nailed down, may change again.
- Because it's new, some readers and parsers haven't implemented it yet.
Which Should You Choose?
- Atom if you want to be forward thinking and need to really describe your content.
- RSS if you're going for the widest reach and don't expect a lot of machine-to-machine action.
Should You Syndicate?
- Is your content able to be syndicated?
- Do you add content to your site on a regular schedule?
- Do each of your content items have unique urls?
- Is your content in a state to be put into a feed?
- Do you use valid HTML?
- Does your content rely on style or javascript to make it useful?
- Can you get your publishing or content management system to create feeds?
Feed Detection
- You need to tell people you have a feed.
- Use the ever-present XML icon to tell people you have a feed.
- Think about how you would explain RSS and Atom to people who have no idea what XML is.
<link rel="alternate" type="application/atom+xml" href="http://site.com/atom.xml" title="My Site Atom Feed/>
Generating Feeds
- Don't try to do it by hand.
- They should come out of a publishing or content management system.
- Validate them often.
- Provide at least RSS 2.0 and Atom 1.0 feeds.
Make You Feed Go Down Easy
- Instead of this
- Give your users this
- Use XSL to "soften the blow" of looking at raw XML.
- Make sure your development team knows how to do this, and make it a requirement.
Podcasting and Videoblogging
- Instead of syndicating text, now we're syndicating media!
- Leading to a democratization of media creation, much like blogging did with online publishing.
- Most podcasts, unfortunately, really suck.
- Uses the enclosure element in RSS (or Atom).
- Adam Curry (former MTV Veejay) was one of the first to popularize it and release a tool for grabbing enclosures and then putting them into iTunes (and then onto an iPod, hence "podcasting").
Some Podcasts and Videoblogs
Odeo Demo
iTunes Podcast Demo
\NetNewsWire Demo
My AOL Demo
Bloglines Demo
category: Presentations, Markup