urllib2
faz exatamente o que é dito e não descompacta automaticamente os fluxos de conteúdo. Felizmente, esse bit não é muito difícil .
Além disso, se você estiver sempre usando o mesmo servidor, poderá ignorar a verificação da codificação gzip.
from io import BytesIO
import gzip
torrent = urllib2.urlopen(torrentURL, timeout=30)
buffer = BytesIO(torrent.read())
gz = gzip.GzipFile(fileobj=buffer)
output = open('mytorrent.torrent', 'wb')
output.write(gz.read())
Eu adicionei em io.BytesIO
para manter isso compatível com o Python 3.