背景
我们经常会遇到视频网站只提供专用的下载器,然后下载的结果也是其专门的格式,从而难以分享。比如“爱奇艺”就只提供他自己的视频软件进行下载,然后还是QSV格式的,如果需要常用的mp4格式,还要再装一个格式转换的软件,就会至少要装两个软件,再以爱奇艺为例,就需要在电脑上装“爱奇艺视频专用播放器”和“格式转换软件”两个东西。如果只是临时要用的话,这样就略显麻烦。本文章将会介绍一种比较硬核的方法,无需安装这两个软件,也能下载mp4视频,方法可能需要有一定的计算机基础,所以只面向有兴趣的同学,零基础的朋友还是依旧推荐自己安装好对应的软件。
实验对象和工具
此处以我本科同学一段有趣的小视频为例,介绍下载流程,本例子介绍的是来自爱奇艺的一段视频的下载方式。
网址链接:http://www.iqiyi.com/w_19rv1cjiyd.html
使用的工具:
- 360浏览器中的“万能视频下载插件” (在使用该教程前,务必在360浏览器的扩展中心中,安装好该插件)
- linux系统
方法流程
- 首先,百度搜索找一个视频解析的网站,我直接用的是百度到的第一个“全民vip视频在线解析”,http://www.qmaile.com/,这种网站蛮多的,也可以自己查找其他的,都可以用。
- 其次,将目标视频的链接,输入进去,进行解析,此处将http://www.iqiyi.com/w_19rv1cjiyd.html输入进去解析。
- 再次,点击播放,此时“万能视频下载插件” 就会进行资源的抓取,此时会挨个抓取10秒钟左右的短视频下载链接
- 接着,对于抓取的链接,直接点击下载,由于如果使用浏览器默认的下载,文件名顺序会乱掉。所以,此处选择批量复制链接,然后在linux服务器中,保存成一个txt文件,此处保存名为
d.txt
的文件,文件大致内容如下,就是一些url链接
$ head d.txt
https://qncdnct.inter.71edge.com/videos/v1/20171124/9c/ea/c18c9e4ea60fe69749c0da8707a775af.ts?key=0a625945b1867c58b952abc9a3eab7bea&dis_k=546aa527d9ee6bd98060d070d8b6007c&dis_t=1596547605&dis_dz=CT-JiangSu&dis_st=39&src=iqiyi.com&dis_hit=0&uuid=755cf756-5f296215-1c3&qd_k=11350ae864c97cdcf38b3e5b4f7ff4de&qd_ip=0&v=&qd_vip=0&dfp=&qd_uid=0&start=0&ve=&qd_tvid=10128040409&qd_tm=1596547605391&contentlength=286324&qd_p=0&tag=0&qd_src=02020031010000000000&hsize=40054&sgti=15_oFq360C8z6AFVv5faGX1fCiYwK9E_1596547564762&end=937265&z=qiniucdn_ct&abs_speed=500
https://jvc.flashapp.cn/bdcdnct.inter.71edge.com/videos/v1/20171124/9c/ea/c18c9e4ea60fe69749c0da8707a775af.ts?key=0a625945b1867c58bcf6d009acd404ef6&dis_k=51baa81be7c8f56d2e3d7ced7ab282f5&dis_t=1596547606&dis_dz=CT-JiangSu&dis_st=39&src=iqiyi.com&dis_hit=0&uuid=755cf756-5f296216-1c3&qd_k=11350ae864c97cdcf38b3e5b4f7ff4de&qd_ip=0&v=&qd_vip=0&dfp=&qd_uid=0&start=2045&ve=&qd_tvid=10128040409&qd_tm=1596547605391&contentlength=697668&qd_p=0&tag=1&qd_src=02020031010000000000&hsize=40054&sgti=15_oFq360C8z6AFVv5faGX1fCiYwK9E_1596547564762&end=1000791&z=baiducdn_ct&abs_speed=500
https://v-77544b4a.71edge.com/videos/v1/20171124/9c/ea/c18c9e4ea60fe69749c0da8707a775af.ts?key=0a625945b1867c58ba964c0d26df8eda5&dis_k=2b5e3ef561a0ba1af7b640552f300d455&dis_t=1596547607&dis_dz=CT-JiangSu&dis_st=39&src=iqiyi.com&dis_hit=0&uuid=755cf756-5f296217-1c3&qd_k=11350ae864c97cdcf38b3e5b4f7ff4de&qd_ip=0&v=&qd_vip=0&dfp=&qd_uid=0&start=275621&ve=&qd_tvid=10128040409&qd_tm=1596547605391&contentlength=69936&qd_p=0&tag=1&qd_src=02020031010000000000&hsize=40054&sgti=15_oFq360C8z6AFVv5faGX1fCiYwK9E_1596547564762&end=1608963&z=chongqing_ct&abs_speed=500
- 然后,编写一个小shell脚本,命名为
1.sh
,运作流程是:将刚才的d.txt
的文件里面的url链接作为输入,使用wget进行下载,并且按顺序重命名。
#!/bin/bash
i=1
while read src_url
do
wget -c "$src_url" -O $i.ts
let i++
done < d.txt
- 接下来,使用
bash 1.sh
,执行数据的下载 - 最后,将下载完成的
*.ts
格式的短视频文件进行合并,此处可以参考百度经验,在windows下载用copy/b *.ts final.mp4
也行,就可以直接合并成mp4文件,也百度搜个小软件,进行文件的合并。我用的是如下这个小软件,不到1兆,点击合并即可。- 链接:https://pan.baidu.com/s/1ExfMi9WF8rE6zB_kFjfnBw
- 提取码:wcct
后续相关的资料
记得当初本科的同学有推荐过YouGet
,在github上能搜到对应的库,是用python编写的,感兴趣的可以研究下,据称是可以直接下载视频等资源,比较极客。
https://github.com/zeybek/YouGet/
知乎上也有相关的介绍
https://zhuanlan.zhihu.com/p/34504742