b站视频转音频软件(免费视频转音频app推荐)
B站视频自某年以后其缓存的视频皆为分段分开的,比较不方便。因此个人想着用Python将其更加自动化。
既然视频和音频分开了,那么必然需要先请求获取视频和音频的url再通过各自的url分别获取各自的内容。最后再借助moviepy将视频和音频合成。
关于批量处理爬取,一开始想得过于复杂(当然,相较于其他更快的方式,基于此方式来说是复杂的),导致连连异常。经过一觉,发现豁然开朗。复杂点在于当找到位于Network中的关键name之后,想着更加自动化的获取通用ID走了不少弯路。后面才发现通用ID就在网址中。
大体思路如下:在进入喜欢UP主的空间后,点击播放全部(图1),
?图1
→进入新页面,发现网址(图2),并没有附着视频BV,因此需要换一种方式思考。
图2
→右键检查页面,在Network栏下发现了特殊name(图3),里面包含了Up主其他的视频(图4,5)。
图3
?图4
图5
→思路清晰起来了,我们可以通过请求图2页面,找到图3所示信息群,再请求该URL获取json数据迭代索引获取各bv_id。
代码及分析如下:
①获取bv_id并导入相关
说明:User-Agent获取在网页Headers部,可自行获取键入。
②构建循环附带跳出条件
③构建bilibiliSpider()类
1.主体框架
说明:此处的合成视频和音频方法是调整过的,起初使用ffmpeg发现不太好使,经过交流群前辈指导改用moivepy,较方便且好使。
2.发出通用请求格式(方便
说明:global意味在于其他方法处需要请求内容。
3.请求获取标题,JSON数据,视频和音频Url
说明:此处的title索引、jsonData索引、videoUrl索引、audioUrl索引和上文的Referer等信息皆可在图中找到,获取大概流程皆为右键检查页面获取信息(图6,7,8)。
?
图6
?
图7
?
图8
4.保存数据
5.合成视频和音频
说明:路径一定要对,不然找不到会报错(可以自己设置路径,前后统一即可)。后面条件语句那开始是清楚之前单独的视频和音频,合成后的名字多了加号,以防被系统按照单独的视频给误删。
起初使用ffmpeg合成视频和音频并不顺利(图9),因此改用moviepy。
?
图9
6.调用方法
说明:全文尽量统一
全文代码如下:
试运行:
?
综上,还有提升空间,比如下载速度太慢。然后是画质的选择,爬的时候默认是最高的,具体自定义画质还在研究(即文中的params貌似没啥用,待测试)。
原创文章,作者:admin,如若转载,请注明出处:https://www.qq65hfghe5.com/tg/77458.html