吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4608|回复: 57
收起左侧

[Web逆向] 探讨B站弹幕的加载方式

  [复制链接]
Nonoby 发表于 2023-3-3 23:47
过去B站的弹幕一直是以XML形式传输,最近再去抓包B站的弹幕发现跟以前不一样了。先看看以前的弹幕接口。

接口地址:https://comment.bilibili.com/209571792.xml

目前仍然有效,而且在B站的移动端页面使用。

当我浏览PC端时,弹幕接口变了,采用了分段的形式加载。

新的接口:https://api.bilibili.com/x/v2/dm/web/seg.so?type=1&oid=209580032&pid=540778911&segment_index=1&pull_mode=1&ps=0&pe=120000

简单分析下参数

[JavaScript] 纯文本查看 复制代码
type=1 //固参
oid= // 视频 aid
pid= // 视频 cid
segment_index= // 弹幕分段序号
pull_mode=1 // 固定参数
ps= // 分段开始数据
pe= // 分段结束数据
// 这两个参数后面会讲


在B站的弹幕加载规则中,当计算的某个参数,假设 n < 2 时,因为它可能是 1.5,segment_index 都为1,当n等于1时,ps为0,pe为120000,当n不等于1时,ps等于120000,pe等于360000,这是在n小于2的情况下。当n大于2则不需要ps、pe两个参数

下面说说上面的计算参数 n 怎么来的。弹幕初始化加载的时候,变量n为1,当视频开始播放的时候,会根据时间变化以及算法进行计算n的值,再去判断弹幕池是否已经加载过了该弹幕分段了,如果没有就继续加载,有就再通过算法计算是否需要递归。

附上代码

[JavaScript] 纯文本查看 复制代码
function gmt(t) {
    if (this.duration) {
        t < 0 && (t = 0);
        var e = this.danmakuStore.pageSize;
        if (!(t - this.duration > -1) && e) {
            var i = this.playUrlStore.dmStartOffset
              , n = Math.floor((t + i) / e) + 1;
            1 === n && t + i >= e / 3 && (n = 1.5),
            this.danmakuStore.allSegment[n] ? (t % e > e - 5 || t < e / 3 && t % (e / 3) > e / 3 - 5) && this.gmt(t + 10) : _x.dmp(n)
        }
    }
}


另外弹幕到底有多个片段,已经弹幕的内容需要你进行解码。


免费评分

参与人数 17吾爱币 +17 热心值 +16 收起 理由
aqbrdfewx + 1 谢谢@Thanks!
sszi + 1 感谢,学习了
大大饭 + 1 热心回复!
superworker2022 + 1 + 1 我很赞同!
zyh109 + 1 + 1 我很赞同!
melinchao + 1 + 1 我很赞同!
Bob5230 + 1 我很赞同!
ccchpig + 1 + 1 热心回复!
duokebei + 1 谢谢@Thanks!
HundSimon + 1 谢谢@Thanks!
涛之雨 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
笙若 + 1 + 1 谢谢@Thanks!
HA_Linux + 1 + 1 我很赞同!
ManholeCover + 1 用心讨论,共获提升!
Here_Hard + 1 + 1 我很赞同!
zuiyanzhongdeme + 1 + 1 我很赞同!
smallan + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

三滑稽甲苯 发表于 2023-3-4 13:02
abraxas 发表于 2023-3-9 10:22
学习了,不过从侧面也看出来目前b站随着用户越来越多,方向转变,服务器的压力也确实越来越大
无头草 发表于 2023-3-4 12:53
vipzzc 发表于 2023-3-4 12:55
回头试试
头像被屏蔽
MXZHT 发表于 2023-3-4 13:15
提示: 该帖被管理员或版主屏蔽
z1872428255 发表于 2023-3-4 13:17
感谢分享,学到了
awa2004 发表于 2023-3-4 13:31
学习了,谢谢分享
fnckyon2014 发表于 2023-3-4 14:15
学习一下,谢谢分享
PrincessSnow 发表于 2023-3-4 14:34
学到了谢谢大佬
yinzhesky 发表于 2023-3-4 14:36
学习一下了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表