metalink-examples

From Microformats Wiki
Revision as of 14:53, 9 July 2007 by Phae (talk | contribs) (Reverted edit of Cj5O8b, changed back to last version by Tantek)
Jump to navigation Jump to search

Please incorporate this into alternates-examples as it is substantially the same problem. Thanks! Tantek

Metalink Examples

A microformat similar to the Metalink file format for aggregating the ways to get the same exact file.

The Problem

For downloading some files, mirrors are listed without any way of being used automatically by programs that do segmented downloading (Web browsers or download managers). There are many different ways of downloading a file; we want people's clients to choose the best way and location, rather than them having to.

Participants

  • Gervase Markham
  • Ant Bryan

Real-World Examples

Who offers Mirror downloads for software

This is only a small sampling.

Example #1: Ark Linux Download

You can download Ark Linux Home 2006.1-rc2 from any of the following locations (you should typically pick one close to your location, unless it is overloaded): Name

Location Protocols

North Carolina, USA FTP HTTP

Oregon, USA FTP HTTP

Kent, UK FTP HTTP

Amsterdam, The Netherlands FTP HTTP

Amsterdam, The Netherlands FTP HTTP

Dublin, Ireland FTP HTTP

Poland FTP

Thessaloniki, Greece FTP HTTP

The torrent file is here.

Existing Practices

Most solutions are manual (wading through FTP sites on mirrors to find the exact file) or by searching against a filename & size.

Proposal

A microformat for Mirrors could make them more usable. Web browsers or download managers could be modified to use them automatically.

<div class="metalink">
  <a href="http://www.foo.com/foo.zip!md5!FFEEE542543...">HTTP
  download</a>
  <a href="ftp://www.foo.com/foo.zip!md5!FFEEE542543...">HTTP
  download</a>
  <a href="http://www.foo2.com/foo.zip!md5!FFEEE542543...">HTTP
  download</a>
  <a href="http://www.foo.com/foo.torrent">Bittorrent download</a>
  <a href="ed2k:/....">EDonkey download</a>
</div>

It's pretty simple; the microformat states that all <a> links inside a <sometag class="metalink"> are alternative ways of reaching the same resource, and that when the UA sees a page like this it should automatically pick the best one and begin downloading.

For legacy UAs, a stylesheet can hide the checksum spans if the author wants to. No semantic information is present in the page text, which can be freeform, in any language or whatever. The type of the link is inferred from the scheme (in this case, http:) or the file extension (e.g. .torrent) of the URL.

The microformat leverages Link Fingerprints to embed the checksums where required (BT, for example, has its own).

Alternatively, hash-examples could be used for checksums.