bilibili-API-collect/docs/video/interact_video.md
2023-02-23 11:48:58 +08:00

16 KiB
Raw Blame History

互动视频信息

互动视频分P与普通视频分P不互通

获取互动视频模块详细信息

https://api.bilibili.com/x/stein/edgeinfo_v2

请求方式GET

认证方式CookieSESSDATA

url参数

参数名 类型 内容 必要性 备注
aid num 稿件avid 必要(可选) avid与bvid任选一个
bvid str 稿件bvid 必要(可选) avid与bvid任选一个
graph_version num 剧情图id 必要 位于player.so
edge_id num 模块编号 非必要 0或留空为起始模块

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-400请求错误
-404无视频
99003剧情图被修改已失效
99077请输入aid/bvid
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
title str 视频模块分P标题
edge_id num 当前模块id
story_list array 进度回溯信息 未登录仅有起始模块
edges obj 当前模块信息
preload obj 预加载的分P
hidden_vars array 变量列表 无变量时不存在此项
is_leaf num 是否为结束模块 0当前模块为普通模块
1当前模块为结束模块
no_tutorial num 禁止记录选择 1禁止
非禁止时无此项
no_backtracking num 禁止进度回溯 1禁止
非禁止时无此项
no_evaluation num 禁止结尾评分 1禁止
非禁止时无此项

data中的story_list数组:

类型 内容 备注
0 obj 回溯第一项模块
n obj 回溯第(n+1)项模块
…… obj …… ……

story_list数组中的对象:

类型 内容 备注
node_id num 模块编号
edge_id num 同上
title str 模块分P标题
cid num 模块分Pcid
start_pos num 记录播放开始位置 单位为毫秒
cover str 分P封面url
is_current num 是否为当前模块 1
仅为当前模块时存在
cursor num 进度序号 从0开始向上增长

data中的edges对象:

字段 类型 内容 备注
dimension obj 当前分P分辨率 有部分视频无法获取分辨率
questions array 问题 结束模块无此项
skin obj 问题外观

edges中的dimension对象:

字段 类型 内容 备注
width num 当前分P 宽度
height num 当前分P 高度
rotate num 是否将宽高对换 0正常
1对换
sar str 作用尚不明确

edges中的questions数组:

类型 内容 备注
0 obj 套了个娃

edges中的questions数组中的对象:

字段 类型 内容 备注
id num 作用尚不明确
type num 选项显示模式 0不显示选项
1底部选项模式
2坐标定点模式
3
127
start_time_r num 300 或 duration 作用尚不明确
duration num 回答限时 单位为毫秒
不限时为-1
pause_video num 是否暂停播放视频 0不暂停
1暂停播放
title str 作用尚不明确
choices array 选项列表
fade_in_time num 选项淡入时间 毫秒
fade_out_time num 选项淡出时间 毫秒

questions数组中的对象中的choices数组:

类型 内容 备注
0 obj 第一选项
n obj 第(n+1)选项
…… obj …… ……

questions数组中的对象中的choices数组中的对象:

字段 类型 内容 备注
id num 选项所跳转的模块id
platform_action str 跳转信息文字 JUMP+{所跳转的模块编号}+{所跳转的cid}
native_action str 点击后对变量运算语句 每项间用分号隔开
无为空
condition str 选项出现条件判断语句 无为空
cid num 选项所跳转分P的cid
x num 选项出现的x坐标 仅坐标模式有此项
y num 选项出现的y坐标 仅坐标模式有此项
text_align num 选项文本对齐方式
option str 选项文字
selected obj 选择动画信息
submited obj 提交动画信息
is_default num 是否为默认选项 1
非默认选项无此项
is_hidden num 是否为隐藏选项 1
非隐藏选项无此项

edges中的skin对象:

字段 类型 内容 备注
choice_image str 选项组件外观图片url
title_text_color str 文字颜色 以下均为RGBA格式
title_shadow_color str 文字阴影颜色
title_shadow_offset_x num 文字阴影x偏移
title_shadow_offset_y num 文字阴影y偏移
title_shadow_radius num 文字阴影半径
progressbar_color str 倒计时条颜色
progressbar_shadow_color str 倒计时条阴影颜色

data中的preload对象:

字段 类型 内容 备注
video array 预加载的分P

preload中的video数组:

类型 内容 备注
0 obj 预加载第一项 预加载的内容为当前所有选项的跳转视频
n obj 预加载第(n+1)项
…… obj …… ……

preload中的video数组中的对象:

字段 类型 内容 备注
aid num 稿件avid
cid num 分P cid

data中的hidden_vars数组:

类型 内容 备注
0 obj 第一个变量
n obj 第(n+1)个变量
…… obj …… ……

data中的hidden_vars数组中的对象:

字段 类型 内容 备注
value num 变量值 随机值为随机整数
id str 变量编号
id_v2 str 变量编号 语句中一般使用这种
type num 变量类型 1普通变量
2随机值
is_show num 是否展示变量 0
1
name str 变量名
skip_overwrite num 0 作用尚不明确

示例:

查询互动视频av73267982下剧情图155446模块5556092的信息

avid方式

curl -G 'https://api.bilibili.com/x/stein/edgeinfo_v2' \
--data-urlencode 'aid=73267982' \
--data-urlencode 'graph_version=155446' \
--data-urlencode 'edge_id=5556092' \
-b 'SESSDATA=xxx'

bvid方式

curl -G 'https://api.bilibili.com/x/stein/edgeinfo_v2' \
--data-urlencode 'bvid=BV1UE411y7Wy' \
--data-urlencode 'graph_version=155446' \
--data-urlencode 'edge_id=5556092' \
-b 'SESSDATA=xxx'
查看响应示例:
{
    "code": 0, 
    "message": "0", 
    "ttl": 1, 
    "data": {
        "title": "4", 
        "edge_id": 5556092, 
        "story_list": [
            {
                "node_id": 1, 
                "edge_id": 1, 
                "title": "0 片头", 
                "cid": 127486603, 
                "start_pos": 27000, 
                "cover": "http://i0.hdslb.com/bfs/steins-gate/127486603_screenshot.jpg", 
                "cursor": 0
            }, 
            {
                "node_id": 5556092, 
                "edge_id": 5556092, 
                "title": "4", 
                "cid": 125499378, 
                "start_pos": 82000, 
                "cover": "http://i0.hdslb.com/bfs/steins-gate/125499378_screenshot.jpg", 
                "is_current": 1, 
                "cursor": 15
            }
        ], 
        "edges": {
            "dimension": {
                "width": 1920, 
                "height": 1000, 
                "rotate": 0, 
                "sar": ""
            }, 
            "questions": [
                {
                    "id": 0, 
                    "type": 2, 
                    "start_time_r": 300, 
                    "duration": -1, 
                    "pause_video": 1, 
                    "title": "", 
                    "choices": [
                        {
                            "id": 5556133, 
                            "platform_action": "JUMP 5556133 125499249", 
                            "native_action": "", 
                            "condition": "$H7g_64_PG2EVS>=1.00 && $H7g_64_PG2EVS<=80.00", 
                            "cid": 125499249, 
                            "x": 947, 
                            "y": 499, 
                            "text_align": 2, 
                            "option": "A <你已成为杀手> 试图砍死萌新 (成功率20%)", 
                            "is_default": 1
                        }, 
                        {
                            "id": 5556134, 
                            "platform_action": "JUMP 5556134 125502707", 
                            "native_action": "", 
                            "condition": "$H7g_64_PG2EVS>=81.00 && $H7g_64_PG2EVS<=100.00", 
                            "cid": 125502707, 
                            "x": 949, 
                            "y": 502, 
                            "text_align": 2, 
                            "option": "B <你已成为杀手> 试图砍死萌新 (成功率20%)"
                        }, 
                        {
                            "id": 5556135, 
                            "platform_action": "JUMP 5556135 125499249", 
                            "native_action": "", 
                            "condition": "", 
                            "cid": 125499249, 
                            "x": 120, 
                            "y": 145, 
                            "text_align": 2, 
                            "option": "C 直接【砍杀失败】"
                        }
                    ]
                }
            ], 
            "skin": {
                "choice_image": "https://i0.hdslb.com/bfs/app/db0ae7700d4fb1416c8b305bcfb6f0948f818cc9.png", 
                "title_text_color": "d8fbffff", 
                "title_shadow_color": "00000033", 
                "title_shadow_offset_y": 1, 
                "title_shadow_radius": 1, 
                "progressbar_color": "ffffffff", 
                "progressbar_shadow_color": "000000cc"
            }
        }, 
        "preload": {
            "video": [
                {
                    "aid": 73267982, 
                    "cid": 125499249
                }, 
                {
                    "aid": 73267982, 
                    "cid": 125502707
                }
            ]
        }, 
        "hidden_vars": [
            {
                "value": 97, 
                "id": "v-H7g@PG2EVS", 
                "id_v2": "$H7g_64_PG2EVS", 
                "type": 2, 
                "is_show": 0, 
                "name": "随机值", 
                "skip_overwrite": 0
            }, 
            {
                "value": 0, 
                "id": "v-YWB6dk1oCP", 
                "id_v2": "$YWB6dk1oCP", 
                "type": 1, 
                "is_show": 1, 
                "name": "达成假结局次数", 
                "skip_overwrite": 0
            }, 
            {
                "value": 0, 
                "id": "v-Zh4JACIiId", 
                "id_v2": "$Zh4JACIiId", 
                "type": 1, 
                "is_show": 1, 
                "name": "死亡次数", 
                "skip_overwrite": 0
            }, 
            {
                "value": 0, 
                "id": "v-a2vplaQlsP", 
                "id_v2": "$a2vplaQlsP", 
                "type": 1, 
                "is_show": 1, 
                "name": "达成真结局次数", 
                "skip_overwrite": 0
            }, 
            {
                "value": 1, 
                "id": "v-lMQqQ994Sk", 
                "id_v2": "$lMQqQ994Sk", 
                "type": 1, 
                "is_show": 1, 
                "name": "循环编号", 
                "skip_overwrite": 0
            }
        ], 
        "is_leaf": 0
    }
}