XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

更正视频流url中的错误

d454b1f
社会易姐QwQ <45892418+SocialSisterYi@users.noreply.github.com>
提交于

代码差异

2 个文件 +114 -101
Modified user/space.md +1 -1
@@ -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
Modified video/videostream_url.md +113 -100
@@ -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文件的数据