From d3533ddf6073aee82f986b2f9a054cedfd1657b1 Mon Sep 17 00:00:00 2001 From: Sihua <827169070@qq.com> Date: Mon, 12 Oct 2020 16:57:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E9=97=B4=E8=A7=86=E9=A2=91=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- live/live_flow.md | 127 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 live/live_flow.md diff --git a/live/live_flow.md b/live/live_flow.md new file mode 100644 index 0000000..1005a84 --- /dev/null +++ b/live/live_flow.md @@ -0,0 +1,127 @@ +# 直播间视频流 + + + +## 根据真实直播间号获取直播视频流 + +> https://api.live.bilibili.com/room/v1/Room/playUrl + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| cid | num | 目标真实直播间号 | 必要 | 为直播间的room_id号 | +| quality | num | 画质等级 | 非必要 | 画质选择,4为最高画质,qn和quality参数二选一 | +| platform | str | 直播流格式 | 非必要 | h5为m3u8格式,web为flv格式,默认为flv格式 | +| qn | str | 画质等级 | 非必要 | 可选参数为1000、150、80,qn和quality参数二选一 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:参数错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | str | 1 | | +| data | obj | 信息本体 | | + + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------- | ------------------------ | +| current_quality | num | 可选画质数量 | | +| accept_quality | obj | 可选画质数参数 | | +| current_qn | num | 可选画质数量 | | +| quality_description | obj | 可选画质参数 | | +| durl | obj | 直播流url | | + +`durl`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------- | ------------------------ | +| url | str | 直播流url | | +| length | num | 未知 | | +| order | num | 未知 | | +| stream_type | num | 未知 | | +| p2p_type | num | 未知 | | + + + +**示例:** + +查询直播间`CID=14073662`的直播间信息 + +```shell +curl -G 'http://api.live.bilibili.com/room/v1/Room/room_init'\ +--data-urlencode 'id=14073662' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "current_quality": 3, + "accept_quality": [ + "4", + "3", + "2" + ], + "current_qn": 3, + "quality_description": [ + { + "qn": 4, + "desc": "原画" + }, + { + "qn": 3, + "desc": "高清" + }, + { + "qn": 2, + "desc": "流畅" + } + ], + "durl": [ + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1", + "length": 0, + "order": 1, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha01.bilivideo.com/live-bvc/757951/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha01&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=9deea67bb9e9c1f0fa3886a34aa09473&ptype=0&src=9&sl=1&order=2", + "length": 0, + "order": 2, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/982058/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=8753b270960034660184d975d86c0161&ptype=0&src=9&sl=1&order=3", + "length": 0, + "order": 3, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/139554/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=cf93474e923c9ba8288c45d954f81045&ptype=0&src=9&sl=1&order=4", + "length": 0, + "order": 4, + "stream_type": 0, + "p2p_type": 0 + } + ] + } +} +``` + +
From 0736cb77f4edbd284d0f4820cfced4bb0066ce65 Mon Sep 17 00:00:00 2001 From: Sihua <827169070@qq.com> Date: Mon, 12 Oct 2020 16:59:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=8C=E5=96=84README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3064b67..4cd7dbe 100644 --- a/README.md +++ b/README.md @@ -148,8 +148,8 @@ PS:所有http协议地址均可使用https,文档中为了统一写作`http` - [直播分区](live/live_area.md)× - [直播间管理](live/manage.md)× - 直播间操作 - - 直播视频流 - - 直播信息流 + - [直播视频流](live/live_flow.md)× + - [直播信息流](live/info_flow.md)× - 答题 - B币钱包 - 基本信息 From a59cc11a923b6ce7726a272702c11426ae40d1a5 Mon Sep 17 00:00:00 2001 From: SocialSisterYi <45892418+SocialSisterYi@users.noreply.github.com> Date: Fri, 16 Oct 2020 21:06:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=90=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=9B=B4=E6=92=AD=E6=B5=81url=E3=80=91api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- live/{live_flow.md => live_stream.md} | 79 +++++++++++++++++------- live/{info_flow.md => message_stream.md} | 0 3 files changed, 58 insertions(+), 25 deletions(-) rename live/{live_flow.md => live_stream.md} (51%) rename live/{info_flow.md => message_stream.md} (100%) diff --git a/README.md b/README.md index 4cd7dbe..c0d7ea4 100644 --- a/README.md +++ b/README.md @@ -148,8 +148,8 @@ PS:所有http协议地址均可使用https,文档中为了统一写作`http` - [直播分区](live/live_area.md)× - [直播间管理](live/manage.md)× - 直播间操作 - - [直播视频流](live/live_flow.md)× - - [直播信息流](live/info_flow.md)× + - [直播视频流](live/live_stream.md)× + - [直播信息流](live/message_stream.md)× - 答题 - B币钱包 - 基本信息 diff --git a/live/live_flow.md b/live/live_stream.md similarity index 51% rename from live/live_flow.md rename to live/live_stream.md index 1005a84..907845f 100644 --- a/live/live_flow.md +++ b/live/live_stream.md @@ -1,10 +1,8 @@ # 直播间视频流 - - ## 根据真实直播间号获取直播视频流 -> https://api.live.bilibili.com/room/v1/Room/playUrl +> http://api.live.bilibili.com/room/v1/Room/playUrl *请求方式:GET* @@ -12,10 +10,10 @@ | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ------ | ---- | ----------- | ------ | ---- | -| cid | num | 目标真实直播间号 | 必要 | 为直播间的room_id号 | -| quality | num | 画质等级 | 非必要 | 画质选择,4为最高画质,qn和quality参数二选一 | -| platform | str | 直播流格式 | 非必要 | h5为m3u8格式,web为flv格式,默认为flv格式 | -| qn | str | 画质等级 | 非必要 | 可选参数为1000、150、80,qn和quality参数二选一 | +| cid | num | 目标真实直播间号 | 必要 | 直播间的`room_id`(非短号) | +| platform | str | 直播流格式 | 非必要 | h5:hls方式
web:http-flv方式
默认为http-flv方式 | +| quality | num | 画质 | 非必要 | `qn`与`quality`任选其一
2:流畅
3:高清
4:原画 | +| qn | str | 画质 | 非必要 | `qn`与`quality`任选其一
80:流畅
150:高清
400:蓝光
10000:原画 | **json回复:** @@ -23,7 +21,7 @@ | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | --------------------------- | -| code | num | 返回值 | 0:成功
-400:参数错误 | +| code | num | 返回值 | 0:成功
-400:参数错误
19002003:房间信息不存在 | | message | str | 错误信息 | 默认为0 | | ttl | str | 1 | | | data | obj | 信息本体 | | @@ -33,31 +31,62 @@ | 字段 | 类型 | 内容 | 备注 | | -------------- | ---- | ------------- | ------------------------ | -| current_quality | num | 可选画质数量 | | -| accept_quality | obj | 可选画质数参数 | | -| current_qn | num | 可选画质数量 | | -| quality_description | obj | 可选画质参数 | | -| durl | obj | 直播流url | | +| current_quality | num | 当前画质代码`qn` | | +| accept_quality | array | 可选画质数参数 | | +| current_qn | num | 当前画质代码`quality` | | +| quality_description | array | 可选画质参数`quality` | | +| durl | array | 直播流url组 | | -`durl`对象: +`accept_quality`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | str | `qn`画质代码1 | | +| n | str | `qn`画质代码(n+1) | | +| …… | str | …… | …… | + +`quality_description`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 画质代码1 | | +| n | obj | 画质代码(n+1) | | +| …… | obj | …… | …… | + +`quality_description`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------------- | ---- | +| qn | num | 画质代码 | | +| desc | str | 该代码对应的画质名称 | | + +`durl`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 主线服务器 | | +| n | obj | 备线n服务器 | | +| …… | obj | …… | …… | + +`durl`数组中的对象: | 字段 | 类型 | 内容 | 备注 | | -------------- | ---- | ------------- | ------------------------ | -| url | str | 直播流url | | -| length | num | 未知 | | -| order | num | 未知 | | -| stream_type | num | 未知 | | -| p2p_type | num | 未知 | | - - +| url | str | 直播流url | flv或m3u8格式
**注:带有转义** | +| length | num | 0 | 作用尚不明确 | +| order | num | 服务器线路序号 | | +| stream_type | num | 0 | 作用尚不明确 | +| p2p_type | num | 0 | 作用尚不明确 | **示例:** 查询直播间`CID=14073662`的直播间信息 ```shell -curl -G 'http://api.live.bilibili.com/room/v1/Room/room_init'\ ---data-urlencode 'id=14073662' +curl -G 'http://api.live.bilibili.com/room/v1/Room/playUrl' \ +--data-urlencode 'id=14073662' \ +--data-urlencode 'qn=10000' \ +--data-urlencode 'platform=web' ```
@@ -125,3 +154,7 @@ curl -G 'http://api.live.bilibili.com/room/v1/Room/room_init'\ ```
+ +## 播放直播流媒体 + +以上获得到`url`字段中的值为直播流url,例如`https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1`导入播放器即可播放直播 \ No newline at end of file diff --git a/live/info_flow.md b/live/message_stream.md similarity index 100% rename from live/info_flow.md rename to live/message_stream.md