bilibili-API-collect
bilibili-API-collect copied to clipboard
关于p2p_type参数的作用猜想
这个参数目的是告诉网页端播放器是否采用PCDN或者MCDN域名
- 对于直播的例子
以下为从html提取
window.__NEPTUNE_IS_MY_WAIFU__
里面的内容结果 可以看到, 实际上服务端提供了两个CDN, 一个普通的一个MCDN. 我估摸着就是服务器压力大时启用MCDN, 普通的CDN作为备用. p2p_type参数则是告诉网页端播放器是否采用PCDN或者MCDN域名, 还在研究哪个参数告诉浏览器优先使用MCDN的地址. 另外观测到浏览器安装关闭webRTC的油猴插件后播放器实际使用MCDN次数会减少.
{
"roomInitRes":{
"code":0,
"message":"0",
"ttl":1,
"data":{ //这里的data和api获取的一致
"room_id":22140990,
"short_id":0,
"uid":538901861,
"is_hidden":false,
"is_locked":false,
"is_portrait":false,
"live_status":1,
"hidden_till":0,
"lock_till":0,
"encrypted":false,
"pwd_verified":true,
"live_time":1647007268,
"room_shield":0,
"all_special_types":[
],
"playurl_info":{
"conf_json":"{\"cdn_rate\":10000,\"report_interval_sec\":150}", //cdn_rate可能是限速?
"playurl":{
"cid":22140990,
"g_qn_desc":[ ], //清晰度信息, 略
"stream":[
{
"protocol_name":"[http_stream]",
"format":[
{
"format_name":"flv",
"codec":[
{
"codec_name":"avc",
"current_qn":150,
"accept_qn":[
10000,
150
],
"base_url":"\u002Flive-bvc\u002F204313\u002Flive_538901861_75431954_1500.flv?expires=1647020371&len=0&oi=1928775346&pt=web&qn=0&trid=10003864d18d4ece4feb94ba71ec3aaf622f&sigparams=cdn,expires,len,oi,pt,qn,trid",
"url_info":[
{
"host":"[https:\u002F\u002Fxy218x60x103x6xy.mcdn.bilivideo.cn:486](https://www.json.cn/u002F/u002Fxy218x60x103x6xy.mcdn.bilivideo.cn:486)",
"extra":"&cdn=cn-live-mcdn&sign=b41986a0f0b871208f745e4cafd3480b&sk=2935686d6cb9146c7a6a6a0b4e120e2594e074fa0760377f1a7a2b2fa0ee6443&p2p_type=1&src=57349&sl=1&free_type=0&flowtype=1&machinezone=ylf&pp=rtmp&sid=1002422&slot=6&source=onetier&order=1&site=a74f797eb16e66e7646791667fca2b3d",
"stream_ttl":3600
}, //mcdn
{
"host":"[https:\u002F\u002Fd1--cn-gotcha03.bilivideo.com](https://www.json.cn/u002F/u002Fd1--cn-gotcha03.bilivideo.com)",
"extra":"&cdn=cn-gotcha03&sign=b32107f75c1478f213116532fdd4d132&sk=2935686d6cb9146c7a6a6a0b4e120e2594e074fa0760377f1a7a2b2fa0ee6443&p2p_type=1&src=57349&sl=1&free_type=0&flowtype=1&machinezone=ylf&pp=rtmp&slot=6&source=onetier&order=2&site=a74f797eb16e66e7646791667fca2b3d",
"stream_ttl":3600
} //正常cdn
],
"hdr_qn":null
}
]
}
]
},
{
"protocol_name":"[http_hls]",
"format":[
{
"format_name":"ts",
"codec":[
{
"codec_name":"avc",
"current_qn":150,
"accept_qn":[
10000,
150
],
"base_url":"\u002Flive-bvc\u002F204313\u002Flive_538901861_75431954_1500.m3u8?expires=1647020371&len=0&oi=1928775346&pt=web&qn=0&trid=10033864d18d4ece4feb94ba71ec3aaf622f&sigparams=cdn,expires,len,oi,pt,qn,trid",
"url_info":[
{
"host":"[https:\u002F\u002Fd1--cn-gotcha103.bilivideo.com](https://www.json.cn/u002F/u002Fd1--cn-gotcha103.bilivideo.com)",
"extra":"&cdn=cn-gotcha103&sign=b7a40b472f66411e4b82f1742b586436&sk=2935686d6cb9146c7a6a6a0b4e120e2594e074fa0760377f1a7a2b2fa0ee6443&p2p_type=1&src=57349&sl=1&free_type=0&flowtype=1&machinezone=ylf&pp=rtmp&slot=6&source=onetier&order=1&site=a74f797eb16e66e7646791667fca2b3d",
"stream_ttl":3600
}
],
"hdr_qn":null
}
]
}
]
}
],
"p2p_data":{ //p2p数据
"p2p":true,
"p2p_type":1, //没见过2的. PCDN好像这个也是1
"m_p2p":true,
"m_servers":[
"[https:\u002F\u002Fxy218x60x103x6xy.mcdn.bilivideo.cn:486](https://www.json.cn/u002F/u002Fxy218x60x103x6xy.mcdn.bilivideo.cn:486)"
]
},
"dolby_qn":null
}
}
}
} //...后略
}
是熟悉的名字呢(