Free Newsletters
Technology & Business Daily

InfoWorld
Log-in | Register

  Tuesday, May 18, 2004 

Random access to Web audio

Doug Kaye's ITConversations has the first installment of a new online talk show called The Gillmor Gang. My ongoing interest in the ability to form URLs that link into large media objects has now infected Doug, and we've been talking about how to enable that capability on his site.

And then it all came rushing back to me, like the hot kiss at the end of a wet fist. I recalled an exchange, some months ago, with Kevin Marks, a former Apple QuickTime engineer who is now Technorati's director of engineering. Our conversation was prompted by my mobile webcasting column. Kevin wrote to point out that streaming is really only useful for live events, and that downloadable files are otherwise superior. But what about random access, I asked? HTTP 1.1 supports that, Kevin pointed out.

I've known for a long time that certain applications -- notably Adobe Reader -- make use of the HTTP Range header to request partial content. I'd never seen the protocol in action, though. It took me a while to find a PDF on the Web that exhibits random-access behavior -- perhaps because it's not really necessary for the vast majority of sub-1MB PDFs out there -- but eventually I found this 4MB document and was able to watch Adobe Reader requesting a sequence of chunks in the background, and skipping ahead when I scrolled to the end of the document to view the last page.

What about downloadable MP3s? I tried QuickTime, no joy. Windows Media Player, no joy. RealOne Player: bingo! And likewise Winamp. How did I never notice this before? Here's some of the chatter between Winamp and Doug's server:

GET /mp3/2004/The%20Gillmor%20Gang%20-%20May%2014,%202004.mp3 HTTP/1.0
Connection: keep-alive
Host: rdscon.vo.llnwd.net
User-Agent: WinampMPEG/5.0
Accept: */*
Icy-MetaData: 1
 
HTTP/1.0 200 OK
Date: Sat, 15 May 2004 03:05:23 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Sat, 15 May 2004 02:43:02 GMT
ETag: "216a53-1173385-40a583b6"
Accept-Ranges: bytes
Content-Length: 18297733
Content-Type: audio/mpeg
Connection: close
 
GET /mp3/2004/The%20Gillmor%20Gang%20-%20May%2014,%202004.mp3 HTTP/1.1
Connection: keep-alive
Host: rdscon.vo.llnwd.net
User-Agent: WinampMPEG/5.0
Accept: */*
Range: bytes=9902232-
 
HTTP/1.0 206 Partial Content
Date: Sat, 15 May 2004 03:05:23 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Sat, 15 May 2004 02:43:02 GMT
Accept-Ranges: bytes
Content-Type: audio/mpeg
Content-Range: bytes 9902232-18297732/18297733
Content-Length: 8395501
Connection: close
 
GET /mp3/2004/The%20Gillmor%20Gang%20-%20May%2014,%202004.mp3 HTTP/1.1
Connection: keep-alive
Host: rdscon.vo.llnwd.net
User-Agent: WinampMPEG/5.0
Accept: */*
Range: bytes=15105006-
 
HTTP/1.0 206 Partial Content
Date: Sat, 15 May 2004 03:05:23 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Sat, 15 May 2004 02:43:02 GMT
Accept-Ranges: bytes
Content-Type: audio/mpeg
Content-Range: bytes 15105006-18297732/18297733
Content-Length: 3192727
Age: 214
Connection: close
In this sequence, the server reports a Content-Length of about 18MB. I scroll halfway, and request the range starting there. Then I scroll farther and request another range.

There remains the problem of link addressability. Doug would have to invent, and hack into his server, some kind of URL parameterization -- which, in fact, he's considering doing. Of course somebody must already have thought of that, and sure enough, Ari Luotonen did in his original 1995 proposal for byte ranges:

EXAMPLES OF THE BYTERANGE URL PARAMETER
 
The first 500 bytes:
   host/dir/foo;byterange=1-500
 
The second 500 bytes:
   host/dir/foo;byterange=501-1000
 
Bytes from 501 until the end of file:
   host/dir/foo;byterange=501-

According to this comparison of HTTP 1.0 and 1.1, the URL parameter idea ran afoul of HTTP 1.1's conditional GET feature, and so byte ranges migrated into the realm of HTTP headers.

To sum up, an ordinary downloadable MP3 sitting on a conventional Web server (as opposed to a streaming MP3 hosted on an Icecast or Shoutcast server) is perfectly able to be randomly accessed -- but only by means of HTTP Range headers, not by means of parameterized URLs. And some (but evidently not all) MP3 players are prepared to exploit that random-access feature.

What's missing?

  • A Web server convention for accepting parameterized URLs like the ones Ari Luotonen proposed way back when. By "convention" I mean something like Real's ramgen, a virtual directory that invokes special processing. The handler for that directory would be a server extension, implemented in various ways on various servers, that would convert from parameterized-URL lingo to HTTP-Range-header lingo.

  • An audio player convention for exposing such URLs to users. I envision it as a Link button that goes active when the player is paused, and that produces the parameterized URL when clicked.

I can see at least one major objection. The byte range syntax isn't human-friendly. The hours/minutes/seconds format that streaming servers support would be nicer. Knowing nothing about MP3 formats, I can't say whether it would be feasible for a sufficiently smart server extension to translate from hours/minutes/seconds to byte ranges.

 

Pushmepullyou

Recently I spoke with Dave Lewis, vice president of deliverability management and ISP relations at Digital Impact. His company's motto: "Making e-mail marketing more effective is our single-minded passion." In one of his online essays, entitled "How to Keep B-to-B E-mail From Getting Caught in Filters," his first rule is "Get permission."

I argued that RSS does away with the need for marketers to ask our permission, for us to grant it, for marketers to play by the rules when we revoke it, and for us to trust that marketers will play by the rules. With e-mail marketing, control resides with the sender and permission is a "best practice." With RSS, control resides with the recipient and permission is an inherent property of the medium.

I feel Dave's pain. E-mail direct marketers are stuck between a rock and a hard place. They believe e-mail is necessary because it's an "intrusive" medium, yet they are forced to neuter e-mail's intrusiveness by complying with the opt-in gold standard. Unfortunately, there's no middle ground. With RSS recipients can have, and increasingly will demand, control of the channel.

Dave and I agreed on one point. "You'd be crazy not to communicate with your customers in their medium of choice," he said. My preference is RSS. Trust me with control of the channel, and I'll be more likely to trust you with my business. [Full story at InfoWorld.com]
In this column I deconstruct "push" and "pull" and determine that, when it comes to modes of electronic communication, these terms mean basically nothing. What matters is who controls the channel of communication, not how we construe the direction of flow.

I think the rhetoric of email direct marketing -- that it's an opt-in, customer-controlled medium -- should correspond to the reality. It makes email direct marketers understandably nervous when I point out that RSS has all the right characteristics -- including, nowadays, lower cost, given the expense incurred on both ends of the email pipe in order to keep the channel clear.

Obviously direct marketers will be among the last to relinquish channel control to the customer. Meanwhile, there's another species of email that's ripe for migration to RSS: institutional alerts. My bank, for example, sends me email alerts when my checking balance falls below $500. To separate those alerts from my spam filters on the one hand, and from my interpersonal email on the other hand, I had to write a filter to catch them and route them to a folder. Many (probably most) people won't go that extra mile. They'll have to pluck the bank's messages from a chaotic email stream, and will wind up missing some alerts.

The obvious alternative is a personalized RSS feed. Does anyone have this already? I'm hoping that, before the end of this year, at least one of the institutions that currently sends me email alerts will offer an RSS option.

 


Recent Entries


















































Sponsored Technology Links

 
 
 HOME  NEWS  BLOGS  PODCASTS  VIDEOS  TECHNOLOGIES  TEST CENTER  EVENTS  CAREERS   About | Advertise | Awards | RSS | Contact Us 

Copyright © 2008, Reprints, Permissions, Licensing, IDG Network, Privacy Policy, Terms of Service.
All Rights reserved. InfoWorld is a leading publisher of technology information and product reviews on topics including viruses,
phishing, worms, firewalls, security, servers, storage, networking, wireless, databases, and web services.

CIO :: ComputerWorld :: CSO :: Demo :: GamePro :: Games.net :: IDG Connect :: IDG World Expo
Industry Standard :: IT World :: JavaWorld :: LinuxWorld :: MacUser :: Macworld :: Network World :: PC World :: Playlist