网站上的电影视频是由若干个子视频组成,无缝隙播放每个子视频,也就是我们看的电影。
我们可以看一下
视频是由若干个这样的.ts 文件组成,右边是对应的每个ts文件的链接地址。
可以先下一个ts文件,试一下。
代码语言:javascript复制import requests
def download():
url = "https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000000.ts"
path = r'F:C-and-Python-Algorithnpythoninterestvideo '
title = url[-20:]
header = {'User-Agent':'Mozilla/5.0'}
response = requests.get(url,headers= header)
with open(path title,'wb') as f:
f.write(response.content)
if __name__ == "__main__":
download();
print("Sussessfully")
但是有一个问题,如何下载整个视频呢?
这个也很容易。
代码语言:javascript复制https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000001.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000002.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000003.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000004.ts
。。。。
。。。
。
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30001330.ts
我们可以发现每个ts文件的链接前部分都是一样的,只有末尾不同,并且都是数字。很明显,加个循环就可以了。
从 0 ~ 1330的循环。
代码语言:javascript复制import requests
def download(i):
##在这里
url = "https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee3000d.ts"%i
##
path = r'F:C-and-Python-Algorithnpythoninterestvideo '
title = url[-20:]
header = {'User-Agent':'Mozilla/5.0'}
response = requests.get(url,headers= header)
#读写文件
with open(path title,'wb') as f:
f.write(response.content)
if __name__ == "__main__":
for i in range(1331):
download(i)
print("Sussessfully")
下载了一系类的子视频。
最后再将子视频合并就可以了。
在下载视屏的文件加下打开终端,输入下面的命令,就会生成合并后的文件。
代码语言:javascript复制copy /b *.ts {name}.mp4