之前实现了三个视频平台的解析接口,再加上自己已知的两大视频平台解析接口,基本覆盖了日常的全部使用场景。而且自己能力有限,也不太可能深挖出什么接口了,于是乎决定好好利用这几个接口,写一个视频下载程序。

界面设计简洁大方,包含了视频清晰度选择、视频名自动填充等功能,十分人性化,而且支持五大主流视频平台,爱奇艺、优酷、腾讯视频、芒果TV以及哔哩哔哩。
其实也没啥技术难度,主要就是各接口的组合,其中优酷较为特殊,部分视频需要搭配copyrightDRMkey才能正确下载,而爱奇艺与优酷同属同一接口,获取M3U8的方法完全相同,只不过无需搭配密钥。而腾讯视频和芒果TV都是用我自己制作的接口,且都是直接通过M3U8链接下载即可。
这四个都是依靠nilaoda大佬的M3U8下载器完成下载的,将下载器和ffmpeg内置到程序中,在开始按钮所调用的函数中,利用多线程启动下载器,并将相关参数传入即可。
而B站的视频链接是flv直链,无需M3U8下载器,直接通过内置的aria2c下载器同样以多线程的方法调用,传入参数即可得到flv视频,再通过ffmpeg将其转换至mp4文件并删除flv视频即可。
还有一个技术点,就是解析清晰度的动态加载。将返回的json文档中的所有清晰度加入一个列表之中,然后将该列表赋值给tkinter框架的Combobox组件之中,即可实现动态加载功能。
· 后记
为啥这篇文章这么短?因为真的没啥可说的了。。。
界面的写法已经写过两篇文章了,感觉也是很简单的。
之前各接口的实现方法也都已经说的很清晰了,爱奇艺和优酷的接口毕竟不是自制的,所以还是不太方便透露。
像M3U8下载器、aria2c下载器以及ffmpeg的用法网上各种文档,也不需要我娓娓道来了吧。
-
相关资料
