python b站自动评论_用语音识别+python自动发送弹幕,变成B站野生字幕君吧!

1. 下载视频

下载B站视频的方法很多,比如这个B站、哔哩哔哩视频解析下载在线工具,或者chrome插件bilibili哔哩哔哩下载助手都可以。Anyway,能下载就行。

2. 将视频转换为音频

这步是为了后面语音识别时比较省时。同样,转换软件或者在线 站有很多,这里就不介绍了。Anyway,能转换就行。

3. 语音识别

这里推荐一个很好用的在线平台 易见外工作台,不仅免费,而且可以将音频转换为带时间轴的文字,正好符合我们的需求。 易见外工作台支持的项目也很多:

可以看到,与 文参数不同的是,它的弹幕出现时间dm_time是一个浮点数,单位是秒。因此下面我们需要将弹幕内容和参数处理成接口要求的格式。

4.2. 处理srt文件的格式

打开下载的.srt文件,文件的格式如下:

0 // 序 00:00:06,420 –> 00:00:07,710 // 开始时间 –> 结束时间那些口口声声 // 内容// 空行1

00:00:09,480 –> 00:00:10,920

一代不如一代的人

2

00:00:12,870 –> 00:00:13,980

应该看着你们

……

发送弹幕我们其实只需要开始时间,那么我们把开始时间转换为秒为单位的float类型。处理完成后返回一个元素为(dm_time, dm_text)的list。

Ok,talk is cheap,直接show the code吧:

def process_srt_file():

srt_file_path = “path_to_your_srt_file”

danmaku_list = []

dm_time, dm_text = None, None

i = 0

for line in open(srt_file_path, “r”, encoding=”utf-8″):

line = line.strip()

if i % 4 == 1:

# 处理时间

start_time = line.split(“–>”)[0]

other_time, millisecond = start_time.split(“,”)

hour, minute, second = other_time.split(“:”)

dm_time = int(hour) * 3600 + int(minute) * 60 + int(second) + int(millisecond) / 1000

elif i % 4 == 2:

# 处理弹幕内容

dm_text = line

danmaku_list.append((dm_time, dm_text))

i += 1

return danmaku_list

4.3. 愉快的自动发送弹幕

先安装bilibili_api包:

pip install bilibili_api

然后也直接上代码吧:

from bilibili_api import video, Verify

from bilibili_api.video import Danmaku

import time

def auto_send_danmaku():

danmaku_list = process_srt_file()

sessdata = “your sessdata” # 用户的sessdata,获取方法见下文

csrf = “your csrf” # 用户的csrf,获取方法见下文

bvid = “BVxxxxxxxxxx” # 视频的bv

dm_color_pink = 16758465 # 弹幕的颜色,我用的骚粉色

dm_mode = 4 # 弹幕类型,字幕当然用底端弹幕

dm_font_size = 18 # 弹幕字 ,有节操的字幕菌还是用小字 吧

# 设置验证

verify = Verify(sessdata=sessdata, csrf=csrf)

# 初始化VideoOperator类

my_video_operator = video.VideoOperate(bvid=bvid, verify=verify)

for danmaku_content in danmaku_list:

dm_time, dm_text = danmaku_content

dm_text = “? ” + dm_text + ” ?” # 两边加个小花花(你也可以不加)

# 实例化一个弹幕类

danmaku = Danmaku(text=dm_text, dm_time=dm_time, color=dm_color_pink, mode=dm_mode, font_size=dm_font_size,

is_sub=False)

# 发送弹幕

result = my_video_operator.send_danmaku(0, danmaku)

print(result)

print(“发送成功:”, danmaku.dm_time, danmaku.text)

print(“休眠15s中……”)

time.sleep(15) # 发送弹幕频率过快会被服务器禁止发送弹幕

注意:B站现在设定的发送弹幕间隔时间至少为5s,但在实操中发现即使间隔10-15s,连续发弹幕仍有可能被暂停发送一段时间。因此大家可以根据程序执行情况删掉srt文件中已经发送成功的部分,等待一段时间重启程序即可。

5. 效果展示

下面是我用以上过程给视频“来到这个世界的第二十三年”-by猫夏小卡 加上野生字幕的效果展示(悄悄安利这个可爱的汉服小姐姐(????)~):

python b站自动评论_用语音识别+python自动发送弹幕,变成B站野生字幕君吧!自动发送弹幕效果展示https://www.zhihu.com/video/1242959567543652352

B站现在已经支持了投稿外挂字幕的功能,如果up主开放了此功能,直接投稿外挂字幕要比野生字幕的效果更好。另外,如果想给BGM加上野生字幕,可以对.lrc歌词文件做格式处理,然后自动发送即可,就交给感兴趣的读者自己撸码吧:)~

Reference:

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览209014 人正在系统学习中 相关资源:橘子快速启动软件(橘子启动器)v3.0绿色免费版-其它代码类资源…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月12日
下一篇 2020年11月12日

相关推荐