原理介绍
众所周知,腾讯云视频直播业务会使用到如下域名:
tencent_livepull = [
"tdns.l1.sched.dcloudlive.com",
"tdns.sched.l8.tdnsv5.com"
]
在解析这些域名时,如果来源IP为腾讯云,将会提供同地域的腾讯云入口IP。这些腾讯云入口并没有部署 Bililive 的鉴权系统,即使提供了假签名参数,也可以正常请求到真原画m3u8链接。同时,这部分的腾讯云入口并没有屏蔽非腾讯云IP的连入,所以我们可以通过修改录制机器的解析,让它同样利用腾讯云入口以录制HLS流真原画。
24.09.26 更新: DNS已降低腾讯云入口的权重,目前即使是腾讯云机器也可能分配到公网入口,且增强了腾讯云入口到公网的QoS。
具体步骤
扫描腾讯云入口
腾讯云视频直播业务至少提供了三个地域的腾讯云入口。购入所有地域的机器来解析有些不太现实。Rich当然可以自购。这里选择利用 DNS 的 ECS 特性,直接解析出这些 IP。
curl http://182.254.116.116/d?dn=tdns.l1.sched.dcloudlive.com&ip=52.83.206.12
借助腾讯云的 HTTPDNS,我们可以拿到类似如下的结果:
43.141.52.22;43.141.132.16
解析结果以;
分隔。如果不喜欢这些结果,下面还有一些来自 ipip 的腾讯云 IP,替换上文中 HTTPDNS 的 ip 参数即可。
24.09.26 更新: 以下 ip 或被降低权重,更换 C 段有更高概率获得期望结果。
# 其中 2 为 Lighthouse
tencent_cloud = {
"beijing": "123.206.57.46",
"beijing2": "81.70.59.196",
"tianjin": "152.136.137.161",
"chengdu": "132.232.158.39",
"chengdu2": "139.155.232.78",
"chongqing": "139.186.146.12",
"guangzhou": "121.51.169.169",
"guangzhou2": "81.71.146.114",
"shanghai": "43.137.149.153",
"shanghai2": "212.129.155.114",
"nanjing": "129.211.169.70",
"nanjing2": "119.45.211.108"
}
在解析结果内选择一个你喜欢的 ip,就可以开始下一步了。
验证可用性
挑选一个你喜欢的正在直播且被二压的主播,记下ta的房间号,替换掉下面 room_id 等号后面的数字。
https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=102&no_playurl=0&mask=1&qn=10000&platform=web&protocol=1&format=2&codec=0
可以看到类似下图的结果
去掉_bluray
后,将链接拼接起来,例子如下(已脱敏)
https://第一步获得的ip/live-bvc/313223/live_110631_5953326/index.m3u8?expires=1726558801&len=0&oi=0x0&pt=web&qn=10000&trid=100769b255a549bc7fe236938fa00766e924&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha204&sign=19a47119c8e1401f6f757b719042e850&site=58772de1ac31ec8003742e137afa69ea&free_type=0&mid=110631&sche=ban&bvchls=1&trace=64&isp=cu&rg=North&pv=Beijing&flvsk=1304f646dfeb4df8b6e7ff33c167d3ad491555cae985818bb2a5ec341f048d3d&deploy_env=prod&suffix=bluray&sk=657866af8fc16d8b2b84dfdde3e9814376eb4640b48f5932d44509b3af9da4a2&hot_cdn=57417&pp=srt&qp=hv_10000&source=puv3_onetier&origin_bitrate=1042980&sl=3&score=13&p2p_type=1&vd=bc&src=puv3
拼接后的链接替换到 url 处,使用 curl 发出请求测试
curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" -H "Host: d1--cn-gotcha204.bilivideo.com" "url"
如果看不到类似下图的结果,请回到第一步重新挑选ip,直到与下图结果类似。
开始使用
通过 百度搜索 如何为你的操作系统修改 hosts,将可用的 ip 和域名 d1--cn-gotcha204.bilivideo.com
绑定。
Biliup 设置见下图
可见输入流并没有二压编码器 BILIAVC.1.6.9-live
再也不用担心叔叔二压一团糊啦!