> Thanks for the pointer ... it seems neat. Doesn't read my amazon pages
> though ... but I'll make good use of it somehow!

I dinked with the redirects some, but didn't have time to figure it all out
(plus I think my problem was compounded by accessing a secure site).

If you're willing & able to use vbs & ie, the following uses xmlhttp (part
of ie) to download a file. xmlhttp has all the built-in smarts to properly
handle redirects. I used it to download all my mp3s from myplay when they
shut things down. The following is a Windows Scripting Component that I
called from ruby through win32ole. Requires MDAC 2.5, I believe, because the
adodb.stream object didn't exist prior to that. There's also a way to do it
without adodb.stream, but it requires a little more code. I believe the
google link in the comments can direct you there as well.

<?XML version="1.0"?>
<package>
<?component error="true" debug="true"?>

<component id="cLabsDownloadFile">
   <registration
      progid="cLabs.Util.DownloadFile"
      description="cLabs File Download Utility"
      version="1.0"
      clsid="{a911de59-3a11-47a9-94f9-88ed96cfca78}"/>

   <public>
      <method name="DownloadFile"/>
   </public>

   <comment>
     The object tag instantiates the specified progid
   </comment>
   <object id="oHTTP" progid="Microsoft.XMLHTTP" />
   <object id="stream" progid="adodb.stream" />
   
   <script language="VBScript">
      <![CDATA[
        Function DownloadFile(sSource, sDest)
          ' code modified from 
          '
http://groups.google.com/groups?hl=en&selm=%23v1%23CmirAHA.2132%40tkmsftngp0
5
          
          '--Begin user variables--
          'sSource =
"http://myplay.winamp.com/mp/download/dl?isRio=1&ltid=CWAl5rkx3I7mkQupcpKSB0
00"
          'sDest = "d:\temp\acorn.mp3"
          '---End user variables---

          oHTTP.open "GET", sSource, False
          oHTTP.send
          
          const adTypeBinary = 1
          const adSaveCreateOverwrite = 2
          
          stream.type = adTypeBinary
          stream.mode = adModeReadWrite
          stream.open
          stream.write oHTTP.responseBody
          stream.savetofile sDest, adSaveCreateOverwrite
          stream.close
          
          DownloadFile = true
        End Function
      ]]>
   </script>
</component>
</package>