直播弹幕互动游戏探索
最近短视频平台出现了一个现象级的弹幕玩法,叫“弹幕互动游戏”。大家看一个视频就清楚这是个啥玩意儿。同时感谢 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.开通电脑直播伴侣权限(主播粉丝满足1000以上可在app端自主申请,不满足1000可联系对接运营协助 ...
- 抖音爆火的“弹幕互动游戏”是什么,如何搭建直播间?
老A最近发现,有一种新型游戏直播悄悄在抖音火了. 直播间里人数一般不多,往往几十个人,上百个人,但观众刷弹幕,刷礼物的热情却高涨.有的主播,播了一个小时,就轻松赚了 112 万音浪(约人民币 11 万 ...
- 老A:抖音爆火的“弹幕互动游戏”是什么?该如何搭建直播间?
老A最近发现,有一种新型游戏直播悄悄在抖音火了. 直播间里人数一般不多,往往几十个人,上百个人,但观众刷弹幕,刷礼物的热情却高涨.有的主播,播了一个小时,就轻松赚了 112 万音浪(约人民币 11 万 ...
- 抖音弹幕互动游戏直播怎么弄?
● 本质上是基于直播的一种实时互动玩法,用户可以通过直播间互动行为实现跟主播之间的实时互动: ● 主播开启玩法后进行投屏分享,用户通过发送评论/赠送礼物来影响主播侧的玩法内容: ● 特定礼物流水(即魔 ...
- 老A:什么是抖音弹幕互动游戏,玩法以及如何参与
今天老A主要为大家拆解弹幕互游三部分,一是弹幕互动游戏的形式及状态:二是弹幕互动游戏的玩法:三是如何参与这个到这个赛道上. 抖音弹幕游戏作为一种全新的娱乐直播形式,在传统娱乐直播中最头疼的问题莫过于: ...
- 【吐槽脑洞】关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考
[吐槽&开脑洞]关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考 预警:本贴没有什么技术含量,也没有什么严谨的资料调查,仅仅是自己的一次游戏体验引起的一些思考和个人观点,以及作为 ...
- 抖音新风口,弹幕互动游戏 ,月入十万+
今天老A主要拆解关于抖音弹幕直播四大部分,一 与传统直播的差异,二 基本玩法,三 如何参与,四 收入组成 抖音弹幕游戏是一种全新的娱乐直播形式,直播最头疼的问题莫过于: 1.没有内容2.没有礼物点 没 ...
- 【最近抖音上元宇宙虚拟项目七国争霸,直播互动游戏源码解析】
最近抖音上元宇宙虚拟项目七国争霸,直播互动游戏,用户进入直播间可以发送弹幕互动,可能因为疫情大家憋在家无聊,直播间人数有5000多人,使用OBS做无人直播,不仅不会被限流,一天轻松赚个几百块也是玩一样 ...
- 虎牙直播网页弹幕过滤小探索
虎牙直播网页弹幕过滤小探索 没过滤前,一堆 333 过滤后,舒服了 js代码 使用方法 网页看直播时候,没发现有过滤弹幕的功能,自己摸索了一下. 没过滤前,一堆 333 过滤后,舒服了 js代码 // ...
最新文章
- Linux环境编程--文件基本操作
- sql语句相似度统计的说明
- POJ 2785 有多少种4个数相加等于0的方案(二分查找 or hash)
- 使用Tslib在触摸屏上显示汉字【转】
- 系统调用-文件访问 创建、打开、关闭、读、写
- java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
- 001jsp的基本知识-包括生命周期,怎么编译等等
- qml设置Text中的文字居中(不是整个Text居中)
- excel连接mysql_使用Excel 通过 ODBC 连接到 MySQL 数据库
- 外币兑换系统(某专业大作业)
- 他25岁进贝尔实验室,32岁提信息论,40岁办达特茅斯会议,晚年患上阿兹海默 | 人物志
- 解决Win10自动打开代理问题
- 【资讯】1225- Flutter 2.10发布,稳定支持Windows
- Modelica生态工具开发利器——同元软控MWorks.SDK 2.0
- xshell6使用技巧_Xshell 6怎么设置为中文-Xshell 6设置为中文的方法 - 河东软件园
- Python编程入门之Arcade游戏编程(一)
- 计算机思维使用的方法是,计算机思维
- 格林酒店2019年第三季度营收同比增长20.1%
- 【PHP】`异客塞尔`世界 与 神奇的字符串++
- 关于天地图官网资源的一些记录