快照的截取时间根据视频画面变化程度决定,各视频不相同
截取时间表的时间根据视频画面变化程度决定,各每个视频不相同
截取时间表的时间和快照一一对应,并按照从左到右 从上到下的顺序排布
https://api.bilibili.com/x/player/videoshot
请求方式:GET
url参数:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
| cid | num | 分P cid | 非必要 | 默认为1P |
| index | num | json数组截取时间表 | 非必要 | 1:需要 0:不需要 默认为0 |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 40001:请求错误 40003:无视频 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| pvdata | str | bin格式截取时间表url | |
| img_x_len | num | 每行图片数 | 一般为10 |
| img_y_len | num | 每列图片数 | 一般为10 |
| img_x_size | num | 每张图片长 | 一般为160 |
| img_y_size | num | 每张图片宽 | 一般为90 |
| image | array | 图片拼版 | |
| index | array | json数组格式截取时间表 | 无为空 |
data中的image数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | str | 图片拼版1 url | |
| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 |
| …… | str | …… | …… |
data中的index数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | num | 恒为0 | |
| 1 | num | 图片1 截取时间 | 视频0秒截取时间 |
| n | num | 图片n 截取时间 | 单位为秒 |
| …… | num | …… | 单位为秒 |
示例:
获取视频av26273789/BV1os411H7wm的快照
avid方式:
curl -G 'https://api.bilibili.com/x/player/videoshot' \
--data-urlencode 'aid=26273789' \
--data-urlencode 'index=1'
bvid方式:
curl -G 'https://api.bilibili.com/x/player/videoshot' \
--data-urlencode 'bvid=BV1os411H7wm' \
--data-urlencode 'index=1'
https://app.bilibili.com/x/v2/view/video/shot
请求方式:GET
鉴权方式:appkey
url参数:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| aid | num | 稿件avid | 必要 | |
| appkey | str | APP密钥 | APP方式必要 | |
| cid | num | 分P cid | 必要 | |
| ts | num | 当前时间戳 | APP方式必要 | |
| sign | str | APP签名 | APP方式必要 |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 -400:请求错误 10008:稿件的缩略图不存在 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| pvdata | str | bin格式截取时间表url | |
| img_x_len | num | 每行图片数 | 一般为10 |
| img_y_len | num | 每列图片数 | 一般为10 |
| img_x_size | num | 每张图片长 | 一般为160 |
| img_y_size | num | 每张图片宽 | 一般为90 |
| image | array | 图片拼版 |
data中的image数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | str | 图片拼版1 url | |
| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 |
| …… | str | …… | …… |
示例:
获取视频av26273789(cid=49075258)的快照
curl -G 'https://app.bilibili.com/x/v2/view/video/shot' \
--data-urlencode 'appkey=1d8b6e7d45233436' \
--data-urlencode 'aid=26273789' \
--data-urlencode 'cid=49075258' \
--data-urlencode 'ts=0' \
--data-urlencode 'sign=06c0a4f2ede21984313552bd9439db18'
https://api.bilibili.com/pvideo
请求方式:GET
内容与「获取视频快照1」加参数index=1相同,但url带有转义,仅限第1P
url参数:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| aid | num | 稿件avid | 必要 |
json回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 40001:请求错误 -404:无视频 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| pvdata | str | bin格式截取时间表url | |
| img_x_len | num | 每行图片数 | 一般为10 |
| img_y_len | num | 每列图片数 | 一般为10 |
| img_x_size | num | 每张图片长 | 一般为160 |
| img_y_size | num | 每张图片宽 | 一般为90 |
| image | array | 图片拼版 | |
| index | array | json数组格式截取时间表 | 无为空 |
data中的image数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | str | 图片拼版1 url | |
| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 |
| …… | str | …… | …… |
data中的index数组:
| 项 | 类型 | 内容 | 备注 |
|---|---|---|---|
| 0 | num | 恒为0 | |
| 1 | num | 图片1 截取时间 | 视频0秒截取时间 |
| n | num | 图片n 截取时间 | 单位为秒 |
| …… | num | …… | 单位为秒 |
示例:
获取视频av26273789的快照
curl -G 'https://api.bilibili.com/pvideo' \
--data-urlencode 'aid=26273789'
以160x90像素为一张,横向10张,纵向10张,从左到右从上到下进行裁剪
图1为0s,图2为8s,图3为14s,以此类推……
示例拼版图片url:http://i0.hdslb.com/bfs/videoshot/49075258.jpg

bin的内容为uint16数组(2Byte对齐),与json数组一一对应
第0项恒为0,从第1项开始作为截取图片的时间(秒)
示例bin格式截取时间表:http://i0.hdslb.com/bfs/videoshot/49075258.bin
hex内容如下:
00000000 00 00 00 00 00 08 00 0e 00 13 00 19 00 22 00 28 |.............".(|
00000010 00 2e 00 38 00 3f 00 46 00 50 00 57 00 5d 00 64 |...8.?.F.P.W.].d|
00000020 00 6d 00 75 00 7c 00 85 00 8e 00 94 00 9c 00 a4 |.m.u.|..........|
00000030 00 ab 00 b3 00 b8 00 c0 00 c6 00 ce 00 d6 00 df |................|
00000040 00 e8 00 ef 00 f6 00 fe 01 05 01 0d 01 13 01 1b |................|
00000050 01 21 01 2b 01 31 01 36 01 3b 01 42 01 4a 01 53 |.!.+.1.6.;.B.J.S|
00000060 01 5c 01 66 01 6c 01 73 01 78 01 7e 01 87 01 94 |.\.f.l.s.x.~....|
00000070 01 9d 01 a5 01 aa 01 b2 01 b9 01 c4 01 ca 01 cf |................|
00000080 01 d9 01 df 01 eb 01 f1 01 f8 02 02 02 09 02 10 |................|
00000090 02 15 02 1c 02 22 02 28 02 2e 02 37 02 3f 02 4a |.....".(...7.?.J|
000000a0 02 4f 02 5a 02 61 02 67 02 6f 02 75 02 7f 02 87 |.O.Z.a.g.o.u....|
000000b0 02 8d 02 92 02 98 02 9e 02 a3 02 ac 02 b3 02 ba |................|
000000c0 02 c9 02 d4 02 d9 02 e1 02 e7 02 f2 02 fa 03 04 |................|
000000d0 03 0b 03 10 03 1d 03 23 03 2a 03 31 03 39 03 42 |.......#.*.1.9.B|
000000e0 03 4d 03 53 03 59 03 63 03 6e 03 78 03 80 03 87 |.M.S.Y.c.n.x....|
000000f0 03 8d 03 92 03 97 03 a0 03 a7 03 b0 03 be 03 ca |................|
00000100 03 d1 03 dc 03 e4 03 ec 03 f3 03 fa 04 02 04 0b |................|
00000110 04 11 04 18 04 1f 04 27 04 31 04 37 04 3e 04 47 |.......'.1.7.>.G|
00000120 04 52 04 57 04 64 04 6f 04 7b 04 81 04 87 04 8d |.R.W.d.o.{......|
00000130 04 93 04 a0 04 ae 04 b9 04 bf 04 c5 04 cc 04 d4 |................|
00000140 04 da 04 e5 04 ea 04 f5 04 fc 05 04 05 09 05 14 |................|
00000150 05 1a 05 23 05 29 05 30 05 3c 05 43 05 4a 05 51 |...#.).0.<.C.J.Q|
00000160 05 56 05 5b 05 67 05 6e 05 74 05 7b 05 87 |.V.[.g.n.t.{..|