import httplib, urllib

def toSecs(tcode):
    l = tcode.split(':')
    return 60*60*int(l[0]) + 60*int(l[1]) + int(l[2])

def offset(bytes,dur,sec):
    return int ( float(toSecs(sec)) / float(toSecs(dur)) * bytes - 6 )

dur = '00:04:40'
beg = '00:01:10' # the intent
end = '00:01:30' # active

#site = 'rdscon.vo.llnwd.net'
#url = '/o1/_downloads/itc/mp3/2004/The%20Gillmor%20Gang%20-%20June%2018,%202004.mp3'

#site = 'www.scn.rain.com'
#url = '/alweb/mp3/whodo.mp3'

site = 'weblog.infoworld.com'
url = '/udell/gems/ericAllman03.mp3'

conn = httplib.HTTPConnection(site)
conn.request('HEAD', url)
response = conn.getresponse()
bytes = int(response.getheader('content-length'))
conn.close()

rangeBegin = offset(bytes,all,beg)
rangeEnd   = offset(bytes,all,end)

params = urllib.urlencode({})
headers = {'Range': 'bytes=%s-%s' % (rangeBegin,rangeEnd)}
print headers

conn = httplib.HTTPConnection(site)
conn.request('GET', url, params, headers)
response = conn.getresponse()
print response.status, response.reason
print response.msg.items()
mp3 = response.read()
print len(mp3)
conn.close()

f = open('clip.mp3','w')
f.write(mp3)
f.close()



