> 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<id=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>