qtparam 签名:没带 cookie 时降级成 &platform=html5;有登录态则先打一次 /nav 看 vipStatus,VIP 追加 fnval=4048&fourk=1、非 VIP 追加 qn=64&fnval=16,wbi 签名基于未追加 fnval 的原始 URL。所以高清档位取决于调用方的登录 cookie(/nav 的 keys 有 30 分钟缓存)。avid 不带 av 前缀,cid 来自 videoInfo。curl --location 'http://localhost:4567/api/bilibili/fetch_video_playurl?avid=undefined&cid=undefined'success 判别{
"success": true,
"data": {
"code": 0,
"data": {
"accept_description": [
"string"
],
"accept_format": "string",
"accept_quality": [
0
],
"auto_qn_resp": {
"dyeid": "string",
"qn_feature": {
"quality_tag": "string",
"sub_tid_name": "string",
"tid_name": "string"
}
},
"cur_language": "string",
"cur_production_type": 0,
"dash": {
"audio": [
{
"SegmentBase": {
"Initialization": "string",
"indexRange": "string"
},
"backupUrl": [
"string"
],
"backup_url": [
"string"
],
"bandwidth": 0,
"baseUrl": "string",
"base_url": "string",
"codecid": 0,
"codecs": "string",
"frameRate": "string",
"frame_rate": "string",
"height": 0,
"id": 0,
"mimeType": "string",
"mime_type": "string",
"sar": "string",
"segment_base": {
"index_range": "string",
"initialization": "string"
},
"startWithSap": 0,
"start_with_sap": 0,
"width": 0
}
],
"dolby": {
"audio": null,
"type": 0
},
"duration": 0,
"flac": null,
"minBufferTime": 0,
"min_buffer_time": 0,
"video": [
{
"SegmentBase": {
"Initialization": "string",
"indexRange": "string"
},
"backupUrl": [
"string"
],
"backup_url": [
"string"
],
"bandwidth": 0,
"baseUrl": "string",
"base_url": "string",
"codecid": 0,
"codecs": "string",
"frameRate": "string",
"frame_rate": "string",
"height": 0,
"id": 0,
"mimeType": "string",
"mime_type": "string",
"sar": "string",
"segment_base": {
"index_range": "string",
"initialization": "string"
},
"startWithSap": 0,
"start_with_sap": 0,
"width": 0
}
]
},
"format": "string",
"from": "string",
"high_format": null,
"last_play_cid": 0,
"last_play_time": 0,
"message": "string",
"play_conf": {
"is_new_description": true
},
"quality": 0,
"result": "string",
"seek_param": "string",
"seek_type": "string",
"support_formats": [
{
"can_watch_qn_reason": 0,
"codecs": [
"string"
],
"display_desc": "string",
"format": "string",
"limit_watch_reason": 0,
"new_description": "string",
"quality": 0,
"report": {},
"superscript": "string"
}
],
"timelength": 0,
"video_codecid": 0,
"view_info": null
},
"message": "string",
"ttl": 0
},
"message": "获取成功",
"meta": {
"requestId": "string",
"clientId": "string",
"platform": "douyin",
"endpoint": "string",
"durationMs": 0,
"attempts": 0,
"trace": [
{
"url": "string",
"method": "string",
"status": 0,
"durationMs": 0,
"reason": "initial",
"retryOf": "string"
}
]
},
"requestPath": "/api/bilibili/fetch_one_video?bvid=BV1xx"
}