Exemple #1
0
def download_clip(target_file, size, user_agent, url, fmt_name, type_name, br, sp, vkey, level):
    browser = Browser()
    browser.set_handle_robots(False)

    form = {
        'stdfrom': get_from(url),
        'type': type_name,
        'vkey': vkey,
        'level': level,
        'platform': PLAYER_PLATFORM,
        'br': br,
        'fmt': fmt_name,
        'sp': sp,
    }

    query_string = urllib.urlencode(form)
    browser.addheaers = [
        ('User-Agent', user_agent),
        ('x-flash-version', 'MAC 15,0,0,189')]

    resp = browser.open('%s?%s' % (url, query_string))

    start_time = time.time()
    downloaded_size = 0
    of = open(target_file, 'wb')
    while True:
        st = time.time()
        data = resp.read(128*1024)
        if not data:
            break
        of.write(data)
        downloaded_size += len(data)
        speed = (len(data)/1024)/(time.time() - st)
        percent = (downloaded_size * 100)/size
        print '[%%%d] %dKB/s %d/%d\r' % (percent, speed, downloaded_size, size),
        sys.stdout.flush()

    time_spent = time.time() - start_time
    speed = (downloaded_size/1024) / time_spent
    
    print 'Download %d bytes in %d seconds, speed %dKB/s' % (downloaded_size, time_spent, speed)

    of.close()