直播用的弹幕姬都是怎么实现的?

2020-10-27 10:25:04 +08:00
 black11black

如题,在 B 站 DD 的时候主播都用弹幕机,把弹幕转成文字放在 obs 里,弹幕机是怎么获取到直播弹幕的呢?

按最基础的爬虫来讲,每一次爬取都是一次独立的请求和返回,似乎并不适合用快速重复请求来实现这种需求,能不能请求到另说,之后还要再做排序,除杂什么的怎么看也不太合适。

按照弹幕机的表现来看最适合的是 ws,也就是如果通过某种方式爬虫能接管浏览器的 ws 的话,每次有弹幕刷新,都会作为一种事件被推送给后端,这样就很舒服。

2270 次点击
所在节点    问与答
8 条回复
ysc3839
2020-10-27 10:57:36 +08:00
你这问的好像不是直播弹幕程序是怎么实现的,而是弹幕系统的接口。
没记错的话,大多数直播网站的弹幕都是用 WebSocket 的。
woodie1994
2020-10-27 10:58:58 +08:00
像斗鱼这些好像有提供 api 获取弹幕的
starzh
2020-10-27 11:04:14 +08:00
locoz
2020-10-27 11:12:02 +08:00
爬虫并不仅限于“每一次爬取都是一次独立的请求和返回”,实际上爬虫是使用与别人客户端同样的通信协议去进行通信,所以不管是 HTTP 、WS 还是纯粹基于 TCP 、UDP 搞的自定义协议,爬虫都可以进行“爬取”这个操作…本质上来讲爬虫只是个特殊的客户端而已。
然后是弹幕,弹幕一般分两种做法,一种是基于 TCP ( B 站以前是)、一种是基于 WS ( B 站现在是),都是依靠服务端推送的,爬虫(弹幕机)只需要同样模拟发送请求、建立连接,然后正常获取到弹幕并按照特定方式解析就行了(一般会做压缩)。
当然 HTTP 也不是不能获取到弹幕,像 B 站的直播间在打开时是会加载一下最近十几条弹幕的,那个就是走的 HTTP 。
glaucus
2020-10-27 11:13:56 +08:00
斗鱼是有开放弹幕接口的,估计 B 站也有吧
locoz
2020-10-27 11:14:07 +08:00
说白了,怎么实现得要看平台方的后端怎么实现,别人用啥爬虫就用啥。
MagnifierSun
2020-10-27 11:57:14 +08:00
不是爬虫,而是你也用 ws 客户端去连接 B 站的 ws 服务端,然后校验 token 啥的,最后建立连接就能持续不断收到弹幕了
lc1450
2020-10-27 23:07:43 +08:00
整个 websocket 客户端 gayhub 一搜就有现成的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/718914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX