返回提交历史
Modified
user/space.md
+1
-1
Modified
video/videostream_url.md
+113
-100
XFEstudio/bilibili-API-collect
更正视频流url中的错误
d454b1f
代码差异
2 个文件
+114
-101
@@ -54,7 +54,7 @@
54
54
| dimension | obj | 视频1P分辨率 | |
55
55
| bvid | str | 视频bvID | |
56
56
| reason | str | 置顶视频备注 | |
57
| inter_video | bool | 是否为合作视频 | false:否<br />ture:是 |
57
| inter_video | bool | 是否为合作视频 | false:否<br />true:是 |
58
58
59
59
`data`中的`rights`对象:
60
60
@@ -12,14 +12,18 @@
12
12
13
13
获取的url有效时间为120min,超时失效需要重新获取
14
14
15
**部分视频**会有**分段**,需要特别注意
16
17
若视频有分P,仅为单P的视频的url,换P则需更换CID重新获取
18
15
19
**参数:**
16
20
17
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
18
| ------ | ---- | -------------- | ------ | -------------------------------------------------- |
19
| aid | url | 视频avID | 非必要 | avID与bvID任选一个 |
20
| bvid | url | 视频bvID | 非必要 | avID与bvID任选一个 |
21
| cid | url | 视频CID | 必要 | |
22
| qn | url | 视频清晰度选择 | 非必要 | 未登录默认32<br />登录默认64<br />**值含义见下表** |
21
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
22
| ------ | ---- | -------------- | ------ | ------------------------------------------------------------ |
23
| aid | url | 视频avID | 非必要 | avID与bvID任选一个 |
24
| bvid | url | 视频bvID | 非必要 | avID与bvID任选一个 |
25
| cid | url | 视频CID | 必要 | |
26
| qn | url | 视频清晰度选择 | 非必要 | 未登录默认32(480P)<br />登录默认64(720P)<br />**值含义见下表** |
23
27
24
28
分辨率代码:
25
29
@@ -81,21 +85,23 @@
81
85
82
86
`data`中的`durl`数组:
83
87
84
| 项 | 类型 | 内容 | 备注 |
85
| ---- | ---- | -------------- | ---- |
86
| 0 | obj | 视频流地址信息 | |
88
| 项 | 类型 | 内容 | 备注 |
89
| ---- | ---- | ----------------- | ---- |
90
| 0 | obj | 视频分段1信息 | |
91
| n | obj | 视频分段(n+1)信息 | |
92
| …… | obj | …… | |
87
93
88
94
`data`中的`durl`数组中的对象:
89
95
90
| 字段 | 类型 | 内容 | 备注 |
91
| ---------- | ------ | ---------- | ------------------------------ |
92
| order | num | 1 | 作用尚不明确 |
93
| length | num | 视频长度 | 单位为毫秒 |
94
| size | num | 视频大小 | 单位为Byte |
95
| ahead | str | ??? | 作用尚不明确 |
96
| vhead | str | ??? | 作用尚不明确 |
97
| url | str | 视频流url | **重要**<br />有效时间为120min |
98
| backup_url | arrary | 备用视频流 | |
96
| 字段 | 类型 | 内容 | 备注 |
97
| ---------- | ------ | ------------ | ---------------------------------- |
98
| order | num | 视频分段序号 | 某些视频会分为多个片段 |
99
| length | num | 视频长度 | 单位为毫秒 |
100
| size | num | 视频大小 | 单位为Byte |
101
| ahead | str | 空 | 作用尚不明确 |
102
| vhead | str | 空 | 作用尚不明确 |
103
| url | str | 视频流url | **重要**<br />链接有效时间为120min |
104
| backup_url | arrary | 备用视频流 | |
99
105
100
106
`data`中的`durl`数组中的对象中的`backup_url`数组:
101
107
@@ -105,6 +111,8 @@
105
111
106
112
**示例:**
107
113
114
**视频无分段时**
115
108
116
获取视频`av99999999`/`BV1y7411Q7Eq`中的1P(CID=`171776208`)的视频流url,清晰度为1080P+
109
117
110
118
http://api.bilibili.com/x/player/playurl?avid=99999999&cid=171776208&qn=112
@@ -158,99 +166,104 @@
158
166
}
159
167
```
160
168
169
**视频有分段时**
161
170
171
获取视频`av138284`/`BV1Tx411w7PX`中的2P(CID=`872498`)的视频流url,清晰度为1080P
162
172
163
## 视频的获取
164
165
将`data`.`durl`.`[0]`.`url`或`data`.`durl`.`[0]`.`backup_url`.`[0]`中的内容作为url进行GET操作
166
167
Header中的`referer`为 `http://www.bilibili.com`或`https://www.bilibili.com`域名下
168
169
以上述示例为例:
170
171
**无referer或错误的情况会返回403 Forbidden**
172
173
**发送:**
174
175
```http
176
GET http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000 HTTP/1.1
177
User-Agent: PostmanRuntime/7.24.1
178
Accept: */*
179
Cache-Control: no-cache
180
Postman-Token: 7f6ab887-69da-400c-ba7d-f5c40f27e1c3
181
Host: upos-sz-mirrorhw.bilivideo.com
182
Accept-Encoding: gzip, deflate, br
183
Connection: keep-alive
173
http://api.bilibili.com/x/player/playurl?avid=138284&cid=872498&qn=80
184
174
175
同http://api.bilibili.com/x/player/playurl?bvid=BV1Tx411w7PX&cid=872498&qn=80
185
176
177
```json
178
{
179
"code": 0,
180
"message": "0",
181
"ttl": 1,
182
"data": {
183
"from": "local",
184
"result": "suee",
185
"message": "",
186
"quality": 16,
187
"format": "flv360",
188
"timelength": 1437918,
189
"accept_format": "flv,flv720,flv480,flv360",
190
"accept_description": [
191
"高清 1080P",
192
"高清 720P",
193
"清晰 480P",
194
"流畅 360P"
195
],
196
"accept_quality": [
197
80,
198
64,
199
32,
200
16
201
],
202
"video_codecid": 7,
203
"seek_param": "start",
204
"seek_type": "offset",
205
"durl": [
206
{
207
"order": 1,
208
"length": 364417,
209
"size": 23018310,
210
"ahead": "",
211
"vhead": "",
212
"url": "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/98/24/872498/872498-1-15.flv?e=ig8euxZM2rNcNbRB7zUVhoM17WuBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=hwbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=f99db2dc9b8c65c245515b29b9ca8b16&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000",
213
"backup_url": [
214
"http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-1-15.flv?e=ig8euxZM2rNcNbRB7zUVhoM17WuBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=74d0d62697364346f88d9c39430ce23c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000"
215
]
216
},
217
{
218
"order": 2,
219
"length": 364395,
220
"size": 23694756,
221
"ahead": "",
222
"vhead": "",
223
"url": "http://upos-sz-mirrorcos.bilivideo.com/upgcxcode/98/24/872498/872498-2-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=cosbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=308c87c55f3325bdaac2a3e8632948ee&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000",
224
"backup_url": [
225
"http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-2-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=eb8f043e0f36f82ab9c62fd002143438&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000"
226
]
227
},
228
{
229
"order": 3,
230
"length": 352333,
231
"size": 22835734,
232
"ahead": "",
233
"vhead": "",
234
"url": "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/98/24/872498/872498-3-15.flv?e=ig8euxZM2rNcNbRjhwdVhoM17bdVhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=hwbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=2685b7649f4bb6eb90f986f125432d78&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000",
235
"backup_url": [
236
"http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-3-15.flv?e=ig8euxZM2rNcNbRjhwdVhoM17bdVhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=922543bfb26184f901187bf9c39c69b2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000"
237
]
238
},
239
{
240
"order": 4,
241
"length": 356773,
242
"size": 23466279,
243
"ahead": "",
244
"vhead": "",
245
"url": "http://upos-sz-mirrorkodo.bilivideo.com/upgcxcode/98/24/872498/872498-4-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=kodobv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=9d29707faf012797ef2b6de21523fcf2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000",
246
"backup_url": [
247
"http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-4-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=9ad4524d31c8d9695ae07b400b73ed29&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000"
248
]
249
}
250
]
251
}
252
}
186
253
```
187
254
188
**回复:**
189
190
```http
191
HTTP/1.1 403 Forbidden
192
Server: openresty
193
Date: Fri, 15 May 2020 16:09:34 GMT
194
Content-Type: video/x-flv
195
Content-Length: 166
196
Connection: keep-alive
197
X-Upsig-Version: 190420
198
via: CHN-SCchengdu-AREACT1-CACHE57[1]
199
Access-Control-Expose-Headers: Content-Length,Content-Range
200
201
<html>
202
<head><title>403 Forbidden</title></head>
203
<body bgcolor="white">
204
<center><h1>403 Forbidden</h1></center>
205
<hr><center>
206
255
207
```
208
256
209
**有referer时则验证通过**
257
## 视频的获取
210
258
211
**发送:**
259
将`data`.`durl`.`[1-n]`.`url`或`data`.`durl`.`[1-n]`.`backup_url`.`[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理
212
260
213
```http
214
GET http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000 HTTP/1.1
215
referer: http://www.bilibili.com/
216
User-Agent: PostmanRuntime/7.24.1
217
Accept: */*
218
Cache-Control: no-cache
219
Postman-Token: 9e409e47-dc77-4c40-8fe2-1ea7c0905961
220
Host: upos-sz-mirrorhw.bilivideo.com
221
Accept-Encoding: gzip, deflate, br
222
Connection: keep-alive
261
需要验证Header中`referer`在 `http://www.bilibili.com`或`https://www.bilibili.com`域名下
223
262
263
**无referer或错误的情况会返回403 Forbidden**故无法获取
224
264
225
```
265
**以上述视频url为例:**
226
266
227
**回复:**
228
229
正文为视频内容
230
231
```http
232
HTTP/1.1 200 OK
233
Date: Fri, 15 May 2020 16:13:01 GMT
234
Content-Type: video/x-flv
235
Content-Length: 219827828
236
Connection: keep-alive
237
X-Upsig-Version: 190420
238
Server: openresty
239
x-reserved: amazon, aws and amazon web services are trademarks or registered trademarks of Amazon Technologies, Inc
240
x-amz-request-id: 00000171ED11F963915698CFDF24DE1C
241
ETag: "b5b14ac8295bf38b56650cc7660aa16b-5"
242
Last-Modified: Mon, 30 Mar 2020 16:50:07 GMT
243
x-amz-expiration: expiry-date="Sat, 30 May 2020 00:00:00 GMT", rule-id="rule-5d42"
244
x-amz-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCScDbHkW6YJFJqXuVozY87putiDpckA7
245
X-CCDN-Expires: 2304606
246
via: CHN-SCchengdu-AREACT1-CACHE66[6],CHN-SCchengdu-AREACT1-CACHE22[0,TCP_HIT,3],CHN-ZJwenzhou-AREACT1-CACHE29[20],CHN-ZJwenzhou-AREACT1-CACHE22[0,TCP_HIT,17],CHN-SH-GLOBAL1-CACHE28[24],CHN-SH-GLOBAL1-CACHE21[0,TCP_HIT,22]
247
x-hcs-proxy-type: 1
248
X-CCDN-CacheTTL: 2592000
249
nginx-hit: 1
250
Age: 287667
251
Accept-Ranges: bytes
252
Access-Control-Expose-Headers: Content-Length,Content-Range
253
254
…………
255
```
267
wget --referer "http://www.bilibili.com" "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/08/62/171776208/171776208-1-112.flv?e=ig8euxZM2rNcNbhMnwhVhwdlhzK3hzdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1589565412&gen=playurl&os=hwbv&oi=606631998&trid=e0fa5f9a7610440a871279a28fae85aau&platform=pc&upsig=5f469cb4c190ed54b89bd40cc37eddff&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000" -O video.flv
256
268
269
回复正文将返回一个flv文件的数据