我摊牌了!我用Python帮B站的小姐姐配好看的字幕!
共 2363字,需浏览 5分钟
·
2021-01-28 17:12
公众号 “菜鸟学Python”
第438篇原创,设为 “星标”,一起学Python!
对于很多B站的忠实小伙伴们来说,在B站上看各个Up主们为大家分享各种内容是一件非常幸福的事情,可是大家也会遇到视频中没有提供弹幕的尴尬局面,比如大家在B站看小姐姐的时候,经常会遇到没有字幕的情况,这种听不清小姐姐说什么,又没有弹幕加以解释的情况,会很别扭~~
因此,小编今天就带领大家来为B站的小姐姐们配上好看的字幕,让大家在欣赏小姐姐的同时也能有字幕的陪伴。
00.整体的思路如下:
audio = AudioFileClip("video.flv").write_audiofile("audio.mp3")
网址:https://aismartvip.com/
03.发送弹幕
对于弹幕的发送,这里我们利用的是bilibili_api库,注意,小编使用的是1.0.0版本的,由于bilibili_api库更新的非常快,而且不同版本之间兼容性不是特别好,所以要想运行下面的程序且不出错误的话,需要大家安装1.0.0版本的bilibili_api库。安装方式也很简单,只需要pip install bilibili-api==1.0.0
即可完成安装。
01).首先,需要将弹幕文件处理为列表形式,而列表中的元素是“(时间,弹幕内容)”的元组形式。程序如下图所示:
上述的程序中,首先读入字幕文件,然后按照弹幕文件的行号,来进行处理,如果是时间,那么就处理成相应的时间格式,如果是弹幕内容,则直接放入到元组中。
02).处理好字幕文件后,接下来就可以发送弹幕了,对于弹幕,我们需要设置一个弹幕类对象,它的要求如下所示:
这里需要重点关注四个参数,分别是text,表示弹幕的内容,dm_time表示的是弹幕出现的时间,这两个内容我们已经在上面的弹幕文件处理中设置完成,然后是mode参数,指定的是弹幕在屏幕中的位置是哪里,而font_size指定的就是弹幕的大小。弹幕的发送程序如下所示:
上述程序中的sessdata和csrf是用来进行身份验证的信息,程序首先初始化一个VideoOperator类,用来向视频发送弹幕,而发送的弹幕信息则是通过构造Danmaku类来进行实现。需要注意的是,这里要间隔一定的时间才能进行弹幕的发送,否则会被检测为刷屏而不允许发弹幕。间隔时间的话,在20秒以上最为稳妥。
03).如何获取key,这里的sessdata和csrf该如何获取呢?
大家点击想要添加字幕的视频页面,点击左上方的小锁,然后点击Cookie后,找到右边的SESSDATA和bili_jct,这两个cookie下的“内容”就是我们需要的sessdata和csrf信息。
说了这么多,最后一起来看一下效果展示:
怎么样,学Python很有意思吧,还等啥赶紧操练起来给喜欢的小姐姐up主发送一波排山倒海的字幕吧。
程序员GitHub,现已正式上线!
接下来我们将会在该公众号上,专注为大家分享GitHub上有趣的开源库包括Python,Java,Go,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。
年度爆款文案
点这里,获取新手福利