b站视频转音频软件(免费视频转音频app推荐)

B站视频自某年以后其缓存的视频皆为分段分开的,比较不方便。因此个人想着用Python将其更加自动化。 既然视频和音频分开了,那么必然需要先请求获取视频和音频的url再通过各自的url分别获取各自的内容。最后再借助moviepy将视频和音频合成。 关于批量处理爬取,一开始想得过于复杂(当然,相较于其他更快的方式,基于此方式来说是复杂的),导致连连异常。经过一觉,发现豁然开朗。复杂点在于当找到位于Ne…

B站视频自某年以后其缓存的视频皆为分段分开的,比较不方便。因此个人想着用Python将其更加自动化。

既然视频和音频分开了,那么必然需要先请求获取视频和音频的url再通过各自的url分别获取各自的内容。最后再借助moviepy将视频和音频合成。

关于批量处理爬取,一开始想得过于复杂(当然,相较于其他更快的方式,基于此方式来说是复杂的),导致连连异常。经过一觉,发现豁然开朗。复杂点在于当找到位于Network中的关键name之后,想着更加自动化的获取通用ID走了不少弯路。后面才发现通用ID就在网址中。

大体思路如下:在进入喜欢UP主的空间后,点击播放全部(图1),

b站视频转音频软件(免费视频转音频app推荐)

​图1

→进入新页面,发现网址(图2),并没有附着视频BV,因此需要换一种方式思考。

b站视频转音频软件(免费视频转音频app推荐)

图2

→右键检查页面,在Network栏下发现了特殊name(图3),里面包含了Up主其他的视频(图4,5)。

b站视频转音频软件(免费视频转音频app推荐)

图3

b站视频转音频软件(免费视频转音频app推荐)

​图4

b站视频转音频软件(免费视频转音频app推荐)

图5

→思路清晰起来了,我们可以通过请求图2页面,找到图3所示信息群,再请求该URL获取json数据迭代索引获取各bv_id。

代码及分析如下:

①获取bv_id并导入相关

b站视频转音频软件(免费视频转音频app推荐)

说明:User-Agent获取在网页Headers部,可自行获取键入。

②构建循环附带跳出条件

b站视频转音频软件(免费视频转音频app推荐)

③构建bilibiliSpider()类

1.主体框架

b站视频转音频软件(免费视频转音频app推荐)

说明:此处的合成视频和音频方法是调整过的,起初使用ffmpeg发现不太好使,经过交流群前辈指导改用moivepy,较方便且好使。

2.发出通用请求格式(方便

b站视频转音频软件(免费视频转音频app推荐)

说明:global意味在于其他方法处需要请求内容。

3.请求获取标题,JSON数据,视频和音频Url

b站视频转音频软件(免费视频转音频app推荐)

说明:此处的title索引、jsonData索引、videoUrl索引、audioUrl索引和上文的Referer等信息皆可在图中找到,获取大概流程皆为右键检查页面获取信息(图6,7,8)。

b站视频转音频软件(免费视频转音频app推荐)

图6

b站视频转音频软件(免费视频转音频app推荐)

图7

b站视频转音频软件(免费视频转音频app推荐)

图8

4.保存数据

b站视频转音频软件(免费视频转音频app推荐)

5.合成视频和音频

b站视频转音频软件(免费视频转音频app推荐)

说明:路径一定要对,不然找不到会报错(可以自己设置路径,前后统一即可)。后面条件语句那开始是清楚之前单独的视频和音频,合成后的名字多了加号,以防被系统按照单独的视频给误删。

起初使用ffmpeg合成视频和音频并不顺利(图9),因此改用moviepy。

b站视频转音频软件(免费视频转音频app推荐)

图9

6.调用方法

b站视频转音频软件(免费视频转音频app推荐)

说明:全文尽量统一

全文代码如下:

b站视频转音频软件(免费视频转音频app推荐)b站视频转音频软件(免费视频转音频app推荐)b站视频转音频软件(免费视频转音频app推荐)b站视频转音频软件(免费视频转音频app推荐)

试运行:

b站视频转音频软件(免费视频转音频app推荐)

综上,还有提升空间,比如下载速度太慢。然后是画质的选择,爬的时候默认是最高的,具体自定义画质还在研究(即文中的params貌似没啥用,待测试)。

本文来自投稿,不代表来拓客立场,如若转载,请注明出处:https://www.laituoke.com/ltk/31968.html