bilibili-API-collect icon indicating copy to clipboard operation
bilibili-API-collect copied to clipboard

关于p2p_type参数的作用猜想

Open cxw620 opened this issue 2 years ago • 1 comments

这个参数目的是告诉网页端播放器是否采用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
                }
            }
        }
    } //...后略
}

cxw620 avatar Mar 11 '22 17:03 cxw620

是熟悉的名字呢(

stackinspector avatar Mar 11 '22 19:03 stackinspector