diff --git a/docs/live/live_stream.md b/docs/live/live_stream.md index 39f46b1..96c4d82 100644 --- a/docs/live/live_stream.md +++ b/docs/live/live_stream.md @@ -4,23 +4,22 @@ > https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo -_请求方式:GET_ +*请求方式:GET* **url参数:** + | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ---------- | ----- | -------- | ------ | ---- | | room_id | num | 直播间号 | 必要 | 房间号 | | no_playurl | num | 无视频流 | 非必要 | 置`0`才有视频流 | -| mask | num | - | - | 作用未知,未观察到响应改变 默认1 | +| mask | num | (?) | 非必要 | 作用未知,未观察到响应改变 默认1 | | qn | num | 质量 | 非必要 | 3000杜比 20000 4K 10000 原画
400 蓝光 250 超清 150 高清
0 应该是默认 | -| platform | str | 平台 | - | 参考:`web` | -| protocol | num[] | 协议 | - | 参考:`0,1` | -| format | num[] | 格式 | - | 参考:`0,1,2` | -| codec | num[] | 编码 | - | 参考:`0,1,2` | -| dolby | num | 杜比 | - | 参考:`5` | -| panorama | num | 环绕音 | - | 参考:`1` | - -> 注意:请将Referer设置为相关链接,如`https://live.bilibili.com/` +| platform | str | 平台 | 非必要 | 参考:`web` | +| protocol | num[] | 协议 | 非必要 | 参考:`0,1` | +| format | num[] | 格式 | 非必要 | 参考:`0,1,2` | +| codec | num[] | 编码 | 非必要 | 参考:`0,1,2` | +| dolby | num | 杜比 | 非必要 | 参考:`5` | +| panorama | num | 环绕音 | 非必要 | 参考:`1` | **json回复:** @@ -32,6 +31,7 @@ _请求方式:GET_ 查看响应示例及响应含义 请求: + ```bash curl -G 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo' \ --data-urlencode 'room_id=123456789' \ # 请自行替换对应房间号 @@ -42,11 +42,11 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo' --data-urlencode 'codec=0,1,2' \ --data-urlencode 'dolby=5' \ --data-urlencode 'panorama=1' \ - --header 'Referer: https://live.bilibili.com' \ --header 'accept: application/json' ``` 响应: + ```jsonc { "code": 0, // 标记是否成功 @@ -59,7 +59,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo' "is_hidden": false, // 是否隐藏 "is_locked": false, // 是否锁定 "is_portrait": false, - "live_status": 1, // 直播状态:1为开播,0为下播 + "live_status": 1, // 直播状态:1为开播,2为未开播,0为下播 "hidden_till": 0, // 隐藏直到(目前未找到相关样本) "lock_till": 0, // 同上,锁定直到 "encrypted": false, @@ -145,6 +145,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo' } } ``` + ## 视频取流 @@ -155,6 +156,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo' - 最终链接为 `host + base_url + extra` 示例代码(javascript): + ```javascript function get_stream_url(data) { let result = []; @@ -172,6 +174,7 @@ function get_stream_url(data) { ``` 示例代码(python): + ```python def get_stream_url(data): for stream in data['data']['playurl_info']['playurl']['stream']: @@ -180,9 +183,7 @@ def get_stream_url(data): for url_info in codec['url_info']: yield ''.join([url_info['host'], codec['base_url'], url_info['extra']]) ``` + 最终从响应的链接随意选择一个即可,按照一般视频流处理即可(目前发现有m3u8和flv两种格式),至于编码格式之类问题,相关的下载器应该都能处理,或者自己根据需要在json回应中挑选 另外,有注意到部分链接可能包含客户端ip地址,在这方面(现在或者将来)可能有检测 - - -> [根据真实直播间号获取直播视频流 (旧)](https://github.com/SocialSisterYi/bilibili-API-collect/blob/f6760f4be38d5b592d396b211e48c666286524de/docs/live/live_stream.md) \ No newline at end of file