The problem seems be solved with urllib.request.urlretrieve()I think the binary information read() was giving had headers like content-size - but not HTTP headers. The first couple of bytes indicate how much content to read and after reading that content, the next set of bytes indicate the next chunk.
-- http://mail.python.org/mailman/listinfo/python-list