最近短视频平台出现了一个现象级的弹幕玩法,叫“弹幕互动游戏”。大家看一个视频就清楚这是个啥玩意儿。同时感谢 https://github.com/xgxkxaxl/x-ladon-x-argus-x-gorgon-x-khronos作者的算法测试提供。

弹幕互动游戏

作为一名技术,其背后的商业逻辑我们不做过多的探究(毕竟市场已经证实了该玩法的市场效应是很不错的),我们研究下其技术实现原理

因为抖爸爸对DY两个字异常敏感,咱们这次就用tiktok手机端来看下整个技术实现方案。

一、寻找直播入口

1、打开tiktok,点击左上角live

二、抓包

发现“webcast16-ws-useast5.us.tiktokv.com/webcast/im/push/”开头的wss推流链接

这个就是直播间的用于跟用户建立通信的websockes长链接,先看下请求参数:

live_region:                  US
app_language:                 en
app_type:                     normal
channel:                      googleplay
device_type:                  pixel
language:                     en
rid:                          7167623950695271194
resolution:                   1080*2180
update_version_code:          202270101
cdid:                         b0a5c09c-061e-4fc8-aed1-00359b33d9e4
sys_region:                   US
uoo:                          1
timezone_name:                Canada/Eastern
residence:                    US
ac:                           wifi
effect_sdk_version:           12.3.0
current_network_quality_info: {"tcp_rtt":15,"quic_rtt":15,"http_rtt":258,"downstream_throughput_kbps":2214,"quic_send_loss_rate":-1,"quic_receive_loss_rate":-1,"net_effective_connection_type":4,"video_download_speed":1411}
device_id:                    7164618779888174635
compress:                     gzip
mcc_mnc:                      310680
version_code:                 270101
ab_version:                   27.1.1
live_id:                      12
device_platform:              android
region:                       US
aid:                          1233
room_id:                      7167623950695271194
cursor:                       1668844203887_7167631274004190978_7167631274004185088_1
manifest_version_code:        202270101
_rticket:                     1668846676392
current_region:               US
iid:                          7164619543654025001
host_abi:                     arm64-v8a
locale:                       en
openudid:                     775a74e09dd2402a
sid:                          f9532b5505890b3346904344a935e625
ac2:                          wifi5g
os_api:                       28
identity:                     audience
webcast_locale:               en_US
dpi:                          480
carrier_region:               US
os_version:                   9
timezone_offset:              -18000
carrier_region_v2:            310
webcast_sdk_version:          2500
imprp:                        u4qrACnHc7yQG
app_name:                     musical_ly
version_name:                 27.1.1
device_brand:                 pixel
op_region:                    US
webcast_language:             en
build_number:                 27.1.1
ts:                           1668844203
aid:                          1233
device_id:                    7164618779888174638
access_key:                   c810b464bad1c8b5114fc55bf0bafa35
fpid:                         9
sdk_version:                  3
iid:                          7164619543654025001
pl:                           0
ne:                           1
version_code:                 270101
ttnet_ignore_offline:         1

经测试,其中几个参数是必备的:

rid, room_id, iid, device_id, imprp, cursor,这几个参数但凡少一个都是无法建立连接的

ok,那我们就以上参数进行逐一生成

三、生成参数

1、rid和room_id

有两种方案

(1)一种是通过手机端user/接口获取room_id

该方法请求数据量非常小,且用户下播后room_id字段为0。而且数据反馈及时,但是需要device算法和xaxl算法

(2)通过pc端请求

该方法不需要device和xaxl,但是该room_id永远存在,用户下播也存在,无法获取该直播间是否关闭。

其实本人更建议用第一种方法,稳定及时。第二种为下下策

2、device_id和iid

用大佬的设备生成算法生成

https://github.com/xgxkxaxl/x-ladon-x-argus-x-gorgon-x-khronos

3、imprp, cursor

这俩参数是一眼找不出来的,我们往上看,发现

“webcast16-normal-useast5.us.tiktokv.com/webcast/im/fetch/”开头的请求结果下有该关键字,于是我们模拟请求该链接,该链接需要几个核心加密参数:

x-gorgon
x-khronos
x-argus
x-ladon

以及device信息,继续使用大佬提供的算法

然后获取到的数据是protobuf转义过的数据,咱们还得对着apk的定义写一份proto文件。

转成pb2的py文件

protoc tiktok.proto --python_out ./

然后解析该内容,发现如下数据(取部分):

这样,这个完整的wss链接就出来了

三、构造请求直播间链接

ok,重新捋一捋

1、获取device数据

2、构造“webcast16-normal-useast5.us.tiktokv.com/webcast/im/fetch/ ”请求

3、获取加密参数,请求url

4、解析protobuf数据,获取imprp, cursor

5、构造wss链接

6、建立wss长链接,并解析protobuf数据(手机端不好同步录制代码,以pc为例)

弹幕protobuf解析

四、弹幕与游戏的交互

这部分内容有点多,下期继续。。。

直播弹幕互动游戏探索相关推荐

  1. 直播弹幕互动游戏如何开播?

    目前弹幕互动游戏玩法仅开放给白名单的主播,且部分玩法要求电脑直播,因此主播需要先做好准备工作: 1.开通电脑直播伴侣权限(主播粉丝满足1000以上可在app端自主申请,不满足1000可联系对接运营协助 ...

  2. 抖音爆火的“弹幕互动游戏”是什么,如何搭建直播间?

    老A最近发现,有一种新型游戏直播悄悄在抖音火了. 直播间里人数一般不多,往往几十个人,上百个人,但观众刷弹幕,刷礼物的热情却高涨.有的主播,播了一个小时,就轻松赚了 112 万音浪(约人民币 11 万 ...

  3. 老A:抖音爆火的“弹幕互动游戏”是什么?该如何搭建直播间?

    老A最近发现,有一种新型游戏直播悄悄在抖音火了. 直播间里人数一般不多,往往几十个人,上百个人,但观众刷弹幕,刷礼物的热情却高涨.有的主播,播了一个小时,就轻松赚了 112 万音浪(约人民币 11 万 ...

  4. 抖音弹幕互动游戏直播怎么弄?

    ● 本质上是基于直播的一种实时互动玩法,用户可以通过直播间互动行为实现跟主播之间的实时互动: ● 主播开启玩法后进行投屏分享,用户通过发送评论/赠送礼物来影响主播侧的玩法内容: ● 特定礼物流水(即魔 ...

  5. 老A:什么是抖音弹幕互动游戏,玩法以及如何参与

    今天老A主要为大家拆解弹幕互游三部分,一是弹幕互动游戏的形式及状态:二是弹幕互动游戏的玩法:三是如何参与这个到这个赛道上. 抖音弹幕游戏作为一种全新的娱乐直播形式,在传统娱乐直播中最头疼的问题莫过于: ...

  6. 【吐槽脑洞】关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考

    [吐槽&开脑洞]关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考 预警:本贴没有什么技术含量,也没有什么严谨的资料调查,仅仅是自己的一次游戏体验引起的一些思考和个人观点,以及作为 ...

  7. 抖音新风口,弹幕互动游戏 ,月入十万+

    今天老A主要拆解关于抖音弹幕直播四大部分,一 与传统直播的差异,二 基本玩法,三 如何参与,四 收入组成 抖音弹幕游戏是一种全新的娱乐直播形式,直播最头疼的问题莫过于: 1.没有内容2.没有礼物点 没 ...

  8. 【最近抖音上元宇宙虚拟项目七国争霸,直播互动游戏源码解析】

    最近抖音上元宇宙虚拟项目七国争霸,直播互动游戏,用户进入直播间可以发送弹幕互动,可能因为疫情大家憋在家无聊,直播间人数有5000多人,使用OBS做无人直播,不仅不会被限流,一天轻松赚个几百块也是玩一样 ...

  9. 虎牙直播网页弹幕过滤小探索

    虎牙直播网页弹幕过滤小探索 没过滤前,一堆 333 过滤后,舒服了 js代码 使用方法 网页看直播时候,没发现有过滤弹幕的功能,自己摸索了一下. 没过滤前,一堆 333 过滤后,舒服了 js代码 // ...

最新文章

  1. Linux环境编程--文件基本操作
  2. sql语句相似度统计的说明
  3. POJ 2785 有多少种4个数相加等于0的方案(二分查找 or hash)
  4. 使用Tslib在触摸屏上显示汉字【转】
  5. 系统调用-文件访问 创建、打开、关闭、读、写
  6. java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
  7. 001jsp的基本知识-包括生命周期,怎么编译等等
  8. qml设置Text中的文字居中(不是整个Text居中)
  9. excel连接mysql_使用Excel 通过 ODBC 连接到 MySQL 数据库
  10. 外币兑换系统(某专业大作业)
  11. 他25岁进贝尔实验室,32岁提信息论,40岁办达特茅斯会议,晚年患上阿兹海默 | 人物志
  12. 解决Win10自动打开代理问题
  13. 【资讯】1225- Flutter 2.10发布,稳定支持Windows
  14. Modelica生态工具开发利器——同元软控MWorks.SDK 2.0
  15. xshell6使用技巧_Xshell 6怎么设置为中文-Xshell 6设置为中文的方法 - 河东软件园
  16. Python编程入门之Arcade游戏编程(一)
  17. 计算机思维使用的方法是,计算机思维
  18. 格林酒店2019年第三季度营收同比增长20.1%
  19. 【PHP】`异客塞尔`世界 与 神奇的字符串++
  20. 关于天地图官网资源的一些记录

热门文章

  1. 商业计划书怎么写 写商业计划书流程 商业计划书要求
  2. 十行代码实现浏览器自动刷新
  3. 我们为什么需要Windows Workflow Foundation?
  4. kudu NoSQL数据库详解
  5. Kafka(Go)教程(十二)---Kafka 中的高水位和 Leader Epoch 机制
  6. shellCode免杀技巧
  7. Mendix发布2022年制造业七大趋势:智能工厂、超级自动化
  8. JavaGUI 简易贪吃蛇代码详解+图片素材
  9. Windows 进程 tasklist查看 与 taskkill结束
  10. ssm在线教学质量评价系统 毕业设计-附源码141550