【发布时间】:2015-11-05 05:24:35
【问题描述】:
大家好,我正在尝试将视频下载为两段或更多段。所以我为此编写了程序。它像字节时钟一样完美地工作,但是当我从中间点开始下载电影时出现问题(可播放)但另一半不起作用:D,为什么我不明白它可以修复吗?我现在将提供程序源代码,你可以玩
import pycurl
import time
from threading import Thread
global url
percent = 1000
total = 0
downloaded = 0
def run():
c = pycurl.Curl()
c.setopt(pycurl.URL,"http://some video link here.mp4")
fp= open("just file output name here.mp4", "wb")
c.setopt(pycurl.WRITEDATA, fp)
#range metter 1 megabyte is 1048576 byte just for knowladge
c.setopt(c.RANGE, '5242880-52428800')
c.setopt(c.NOPROGRESS, 0)
c.setopt(c.PROGRESSFUNCTION, progress)
c.setopt(pycurl.FOLLOWLOCATION, 0)
print("starting download,happy waiting..")
c.perform()
def progress(download_t, download_d, upload_t, upload_d):
global percent
global total
global downloaded
percent = (download_d+0.00000000001)/(download_t+0.000000000001)*100
total = (download_t/1048576)
downloaded = (download_d/1048576)
def main():
while percent != 101:
if percent != 1000:
try:
print ("downloaded",round(percent),"%","downloaded",round(downloaded),"from",round(total))
if percent == 100:
print("")
print("Download complete:")
break
time.sleep(2)
except:
print("unknown error")
if __name__ == "__main__":
t1 = Thread(target=run)
t1.start()
t2 = Thread(target=main)
t2.start()
【问题讨论】:
-
你找到解决这个问题的方法了吗?
标签: python video download range pycurl