First, let me say that it’s great that RSS is so widely supported by BitTorrent sites.
When I met Bram Cohen at a Wired awards ceremony in 2003 (BitTorrent won, Skype was also nominated, as was RSS), I told him I thought the two technologies were a great match. Both were low tech, open formats for content distribution, that solved parallel problems.
So it’s great that six years later so much is being done at the intersection between BitTorrent and RSS.
That said, there are some obvious improvements possible. I’m going to take some notes here, and hopefully add to them over time.
ezrss.it
Looking at the feeds produced by ezrss.it. An example.
1. The length attribute on the enclosure must be the length of the torrent file, not the length of the file the torrent describes. For example, the correct length of this torrent is 14680, not 367450064 as the RSS feed indicates it is.
2. It would be great if the feed items had <category> elements. Obviously everything on eztv.it would be TV Show. Use the same categories that Mininova uses?
3. It’s a good idea for <item>s to have <guid>s. It’s the foolproof way for clients to tell if they’ve seen an item before. It might make the file a bit larger, but not by very much. It’s really worth it. ;->
isohunt.com
Looking at feeds produced by isohunt.com. An example.
1. Add some carriage returns and tabs to the XML text. Makes it easier to read the feeds.
2. The content-type that’s being returned is text/html. That’s pretty hokey for XML data. Try text/xml for a better result.
3. <item>s have <guid>s — good! you can leave off the isPermaLink=true, it’s the default value. Any client that isn’t defaulting this way has a bug.
4. They make the same length mistake that ezrss.it makes. The length should be the length of the torrent file not the length of the file it describes.
5. The category is provided, but it’s encoded in HTML in the description. That’s okay but there should also be a <category> element. It’s esp important for a site like isohunt that handles multiple types of torrents (not just TV like eztv.it).
kicaksstorrents.com
Here’s an example feed produced by kickass.
This feed is interesting because it provides good hints for extensions to RSS that might prove interesting for BitTorrent applications.
But first, a list of things that need immediate attention.
1. There should be an enclosure element on each item, that’s how the client knows what to download.
2. The author element must be an email address.
3. The following elements are not part of RSS, and probably should be part of a namespace just for BitTorrent clients: torrentLink, hash, peers, seeds, leechs (probably should be spelled leeches), size (good idea, since the enclosure length would be the size of the torrent file, but it’s probably better to call this length for consistency), verified (use true/false instead of 0/1, slightly easier for a non-programmer to understand).
Good stuff…
1. They use the category element! That’s good.
torrentzap.com
Here’s an example feed produced by torrentzap.
1. No enclosure element, would be hard to write a client that processed this RSS feed.
2. Good — it uses the category element correctly.
3. There is no size element in RSS. Again highlights the need for a BitTorrent-specific namespace.
4. Would make it easier to debug if there were some carriage returns in the file.
5. Please use guids.
Update: Here are some ideas for a Torrent namespace.