Hack 45. Launch a New Category
The world of podcasting is expanding rapidly, and new categories are continuously being added to the public directories. These categories are maintained by individuals just like you, and you can propose and maintain categories for topics that interest you.
When the Internet first started, one of the biggest problems people faced was finding new pages. O'Reilly's Global Network Navigator was the first directory of web pages, a concept that was later refined by Yahoo! and the Open Directory Project (http://dmoz.org/). These directories contained a set of categories and subcategories with web site links at each level. It broke the Web wide open for people.
Podcasting has grown so fast, in part because of the immediate availability of the list of all the podcasts through use of an OPML directory. OPML stands for Outline Processor Markup Language. It's an XML syntax for a nested hierarchy of outline elements. In the case of podcasting, it's used for links to the podcast feeds.
Here is an excerpt from the OPML that is maintained for Australian podcasts:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- OPML generated by Radio UserLand v8.0.8 on Sun, 09 Jan 2005 11:52:09 GMT --> <opml version="1.1"> <head> <title>Australia.opml</title> <dateCreated>Sun, 14 Nov 2004 11:41:36 GMT</dateCreated> <dateModified>Sun, 09 Jan 2005 11:52:09 GMT</dateModified> <ownerName>Podcast Australia</ownerName> <ownerEmail>email@example.com</ownerEmail> <expansionState></expansionState> <vertScrollState>1</vertScrollState> <windowTop>55</windowTop> <windowLeft>0</windowLeft> <windowBottom>483</windowBottom> <windowRight>744</windowRight> </head> <body> <outline text="Beer"> <outline text="Australian Craft Brewers" type="link" url="http://rss.oz.craftbrewer.org/"/> </outline> <outline text="Current Affairs"> <outline text="triple j's Hack" type="link" url="http://www.abc.net.au/triplej/hack/podcast/podcast.xml"/> </outline> <outline text="Photos"> <outline text="lookANDsee" type="link" url="http://las.new-england.net.au/feed/rss2/"/> </outline> <outline text="Technology"> <outline text="A Random Act of Podcasting" type="link" url="http://feeds.feedburner.com/ARandomActOfPodcasting"/> <outline text="G'day World" type="link" url="http://www.gdayworld.com/rss_mp3.xml"/> </outline> <outline text="G'day World" type="link" url="http://www.gdayworld.com/rss_mp3.xml"/> <outline text="A Random Act of Podcasting" type="link" url="http://feeds.feedburner.com/ARandomActOfPodcasting"/> <outline text="triple j's Hack" type="link" url="http://www.abc.net.au/triplej/hack/podcast/podcast.xml"/> <outline text="lookANDsee" type="link" url="http://las.new-england.net.au/feed/rss2/"/> <outline text="ABC's Dig Radio" type="link" url="http://abc.net.au/dig/podcast/dig_rss.xml"/> <outline text="Australian Craft Brewers" type="link" url="http://rss.oz.craftbrewer.org/"/> </body> </opml>
The header section describes some of the biographical elements of the outline: what it is, who made it, and when it was last touched. The visual elements are optional and are used only by editors.
Within the <body> tag of the OPML are outline elements. Each outline element has the text of the element and optionally a type field and a URL.
More information about the OPML standard is available at the OPML site (http://www.opml.org/spec). The standard is very loose. Most of the elements and attributes are marked as optional. And the semantics of some of the attributes, such as type, are so loosely defined that they are meaningful only by convention. A DTD that describes the format is available through the site. An example of the laxness in the spec is that all the elements in the header section might or might not be present. A title is not strictly necessary.
Radio UserLand is the original interface for editing OPML. Simply open the file using the Open File command in the File menu. Edit using the Outline menu.
If you don't have Radio UserLand and you want to edit or maintain one of these files, you can use your favorite text editor, or an XML editor such as oXygen (http://www.oxygenxml.com/) or XMLSpy (http://www.altova.com/).
If you are going to write OPML by hand, I recommend that you at least have the title, dateCreated, dateModified, ownerName, and ownerEmail in the out-line's header section. I also recommend that you run the XML through an XML validator to make sure it's minimally valid. An OPML validator is available at http://www.kbcafe.com/rss/?guid=20041030111147.
URLs inside of OPML can point to anything. That includes the RSS 2.0 feed of a podcast, or the OPML of another directory. In this way, a single directory can be hosted on multiple servers and maintained by multiple authors.
For example, the Australia directory shown earlier is referenced in the iPodder directory using this element tag:
<outline text="Australia" type="link" url="http://www.podcast.com.au/gems/Australia.opml"/>
This flexible directory architecture makes it very easy to maintain large distributed directories of podcasts.
7.3.1. Proposing a New Category
You can help the podcasting community [Hack #48] by maintaining a leaf of the larger podcast directory tree. In the example here, the OPML author is maintaining the section on podcasts in Australia. To start your own leaf, first you create the OPML file with the section of the original outline, or an entirely new outline. Then you validate it using an OPML validator.
Next, you contact the maintainer of the parent directory and propose maintaining the subdirectory, or creating a new directory leaf. If the maintainer agrees to this, he will hook your URL into the directory using an outline node, such as the one shown earlier that links in the Australia node.
As a maintainer, it's up to you to handle requests for additions to your podcast directory through email in a timely manner. The amount of work required depends greatly on the popularity of the directory that you pick.
7.3.2. See Also