syntax = "proto3"; package bilibili.app.dynamic.v1; import "bilibili/app/archive/middleware/v1/preload.proto"; // v1动态 service Dynamic { // 动态视频页 rpc DynVideo (DynVideoReq) returns (DynVideoReqReply); // 批量动态id获取动态详情 rpc DynDetails (DynDetailsReq) returns (DynDetailsReply); // 小视频连播页 rpc SVideo (SVideoReq) returns (SVideoReply); // 动态tab页 rpc DynTab (DynTabReq) returns (DynTabReply); // 同城接口开关 rpc DynOurCitySwitch (DynOurCitySwitchReq) returns (NoReply); // 动态同城页 rpc DynOurCity(DynOurCityReq) returns (DynOurCityReply); // 最近访问-个人视频feed流 rpc DynVideoPersonal(DynVideoPersonalReq) returns (DynVideoPersonalReply); // 最近访问-标记已读 rpc DynUpdOffset(DynUpdOffsetReq) returns (NoReply); // 动态红点接口 rpc DynRed(DynRedReq) returns(DynRedReply); // 查看更多-列表 rpc DynMixUpListViewMore(NoReq) returns (DynMixUpListViewMoreReply); // 查看更多-搜索 rpc DynMixUpListSearch(DynMixUpListSearchReq) returns (DynMixUpListSearchReply); // 同城点击上报 rpc OurCityClickReport(OurCityClickReportReq) returns (OurCityClickReportReply); // 位置定位 rpc GeoCoder(GeoCoderReq) returns (GeoCoderReply); } // 地址部件 message AddressComponent { // 国家 string nation = 1; // 省 string province = 2; // 市 string city = 3; // 区,可能为空字串 string district = 4; // 街道,可能为空字串 string street = 5; // 门牌,可能为空字串 string street_number = 6; } // 行政区划信息 message AdInfo { // 国家代码(ISO3166标准3位数字码) string nation_code = 1; // 行政区划代码,规则详见:行政区划代码说明 string adcode = 2; // 城市代码,由国家码+行政区划代码(提出城市级别)组合而来,总共为9位 string city_code = 3; // 行政区划名称 string name = 4; // 行政区划中心点坐标 Gps gps = 5; } // enum BgType { bg_type_default = 0; // bg_type_face = 1; // } // 付费课程批次卡 message CardCurrBatch { // 标题 string title = 1; // 封面图 string cover = 2; // 跳转地址 string uri = 3; // 展示项 1(本集标题) string text_1 = 4; // 展示项 2(更新了多少个视频) string text_2 = 5; // 角标 VideoBadge badge = 6; } // 付费课程系列卡 message CardCurrSeason { // 标题 string title = 1; // 封面图 string cover = 2; // 跳转地址 string uri = 3; // 展示项 1(更新信息) string text_1 = 4; // 描述信息 string desc = 5; // 角标 VideoBadge badge = 6; } // PGC视频卡片数据 message CardPGC { // 标题 string title = 1; // 封面图 string cover = 2; // 秒开地址 string uri = 3; // 视频封面展示项 1 string cover_left_text_1 = 4; // 视频封面展示项 2 string cover_left_text_2 = 5; // 封面视频展示项 3 string cover_left_text_3 = 6; // cid int64 cid = 7; // season_id int64 season_id = 8; // epid int64 epid = 9; // aid int64 aid = 10; // 视频源类型 MediaType media_type = 11; // 番剧类型 VideoSubType sub_type = 12; // 番剧是否为预览视频 0:否,1:是 int32 is_preview = 13; // 尺寸信息 Dimension dimension = 14; // 角标 repeated VideoBadge badge = 15; // 是否能够自动播放 int32 can_play= 16; // PGC单季信息 PGCSeason season = 17; } // UGC视频卡片数据 message CardUGC { // 标题 string title = 1; // 封面图 string cover = 2; // 秒开地址 string uri = 3; // 视频封面展示项 1 string cover_left_text_1 = 4; // 视频封面展示项 2 string cover_left_text_2 = 5; // 封面视频展示项 3 string cover_left_text_3 = 6; // avid int64 avid = 7; // cid int64 cid = 8; // 视频源类型 MediaType media_type = 9; // 尺寸信息 Dimension dimension = 10; // 角标 repeated VideoBadge badge = 11; // 是否能够自动播放 int32 can_play= 12; } // enum CornerType { corner_type_none = 0; // corner_type_text = 1; // corner_type_animation = 2; // } // 粉丝样式 message DecoCardFan { // 是否是粉丝 int32 is_fan = 1; // 数量 int32 number = 2; // 颜色 string color = 3; } // 装扮卡片 message DecorateCard { // 装扮卡片id int64 id = 1; // 装扮卡片链接 string card_url = 2; // 装扮卡片点击跳转链接 string jump_url = 3; // 粉丝样式 DecoCardFan fan = 4; } // 文本描述 message Description { // 文本内容 string text = 1; // 文本类型 string type = 2; // 点击跳转链接 string uri = 3; // emoji类型 string emoji_type = 4; // 商品类型 string goods_type = 5; } // 尺寸信息 message Dimension { // int64 height = 1; // int64 width = 2; // int64 rotate = 3; } // 动态卡片项 message DynamicItem { // 卡片类型 // forward:转发 av:稿件视频 fold:折叠 pgc:pgc内容 courses:付费视频 upList:最近访问列表 followList:我的追番列表 string card_type = 1; // 转发类型下,items的类型 string item_type = 2; // 模块内容 repeated Module modules = 3; // 动态ID str string dyn_id_str = 4; // 转发动态ID str string orig_dyn_id_str = 5; // r_type int32 r_type = 6; // 该卡片下面是否含有折叠卡 int32 has_fold = 7; } // 批量动态id获取动态详情返回值 message DynDetailsReply { // 动态列表 repeated DynamicItem list = 1; } // 批量动态id获取动态详情请求参数 message DynDetailsReq { // 青少年模式 int32 teenagers_mode = 1; // 动态id string dynamic_ids = 2; // 清晰度 int32 qn = 3; // 流版本 int32 fnver = 4; // 流功能 int32 fnval = 5; // 是否强制使用域名 int32 force_host = 6; // 是否4k int32 fourk = 7; } // 查看更多-搜索-响应 message DynMixUpListSearchReply { // repeated MixUpListItem items = 1; } // 查看更多-搜索-请求 message DynMixUpListSearchReq { // string name = 1; } // 查看更多-列表-响应 message DynMixUpListViewMoreReply { // 关注up主列表信息 repeated MixUpListItem items = 1; // 默认搜索文案 string search_default_text = 2; } // 动态同城物料 message DynOurCityItem { // 卡片类型 // av:稿件 draw:图文 string card_type = 1; // 动态ID int64 dyn_id = 2; // 跳转地址 string uri = 3; // 模块列表 repeated DynOurCityModule modules = 4; // 资源ID int64 rid = 5; // 透传服务端魔镜参数 string debug_info = 6; } // 动态同城物料模块 message DynOurCityModule { // 类型 // cover:封面 desc:描述 author:发布人 extend:扩展部分 string module_type = 1; // oneof module_item { // 封面 DynOurCityModuleCover module_cover = 2; // 描述 DynOurCityModuleDesc module_desc = 3; // 发布人 DynOurCityModuleAuthor module_author = 4; // 扩展部分 DynOurCityModuleExtend module_extend = 5; } } // 动态同城物料-发布人模块 message DynOurCityModuleAuthor { // 用户Mid int64 mid = 1; // 用户昵称 string name = 2; // 用户头像 string face = 3; // 跳转地址 string uri = 4; } // 动态同城物料-封面模块 message DynOurCityModuleCover { // 封面图 单图样式取第一个元素 repeated string covers = 1; // 封面样式 // 1:横图 2:竖图 3:方图 int32 style = 2; // 视频封面展示项图标 1 int32 cover_left_icon_1 = 3; // 视频封面展示项 1 string cover_left_text_1 = 4; // 视频封面展示项图标 2 int32 cover_left_icon_2 = 5; // 视频封面展示项 2 string cover_left_text_2 = 6; // 封面视频展示项 3 string cover_left_text_3 = 7; // 角标 repeated VideoBadge badge = 8; } // 动态同城物料-描述模块 message DynOurCityModuleDesc { // 描述信息 string desc = 1; } // 动态同城物料-扩展部分模块 message DynOurCityModuleExtend { // 类型 string type = 1; oneof extend { // LBS模块 DynOurCityModuleExtendLBS extend_lbs = 2; } } // 动态同城物料extent-LBS模块 message DynOurCityModuleExtendLBS { // 标题 string title = 1; // 跳转地址 string uri = 2; // 小图标 string icon = 3; // poiType int32 poi_type = 4; } // 动态同城-响应 message DynOurCityReply { // 翻页游标 string offset = 1; // 是否还有更多数据 // 1:有 int32 has_more = 2; // 样式类型 // 1:双列 2:瀑布流 int32 style = 3; // 顶导信息 string top_label = 4; // 列表详情 repeated DynOurCityItem list = 5; // 顶导按钮信息 string top_button_label = 6; // 城市ID int32 city_id = 7; // 城市名 string city_name = 8; } // 动态同城页-请求 message DynOurCityReq { // 城市ID int64 city_id = 1; // 纬度 double lat = 2; // 经度 double lng = 3; // 透传上一次接口请求返回的offset string offset = 4; // 每页元素个数 int32 page_size = 5; // 青少年模式 // 1:开启青少年模式 int32 teenagers_mode = 6; // 清晰度(旧版) int32 qn = 7; // 流版本(旧版) int32 fnver = 8; // 流类型(旧版) int32 fnval = 9; // 是否强制使用域名(旧版) int32 force_host = 10; // 是否4k(旧版) int32 fourk = 11; // 是否开启lbs // 0:关闭 1:开启 int32 lbs_state = 12; // 是否刷新城市 uint32 refresh_city = 13; // 魔镜设置 ExpConf exp_conf = 14; // 秒开参数 bilibili.app.archive.middleware.v1.PlayerArgs player_args = 15; // 城市码 int64 city_code = 16; // 构建时间 int64 build_time = 17; } // 动态同城开关-请求 message DynOurCitySwitchReq { // 开关参数 // 0:关闭 1:开启 int32 switch = 1; } // 红点接口物料 message DynRedItem { // 数字红点有效 更新数 uint64 count = 1; } // 红点接口-响应 message DynRedReply { // 类型 // count:数字红点 point:普通红点 no_point:没有红点 string red_type = 1; // 红点具体信息 DynRedItem dyn_red_item = 2; // 默认tab 值对应tab接口下发的anchor string default_tab = 3; // DynRedStyle red_style = 4; } // 动态红点接口-请求 message DynRedReq { // 动态红点接口各tab offset信息 repeated TabOffset tab_offset = 1; } // message DynRedStyle { // int32 bg_type = 1; // int32 corner_type = 2; // int32 display_time = 3; // string corner_mark = 4; // DynRedStyleUp up = 5; // int32 type = 6; } // message DynRedStyleUp { // int64 uid = 1; // string face = 2; } // 动态tab详情 message DynTab { // tab标题 优先展示用,未开启状态第一次请求返回同城,后续请求返回对应城市名 string title = 1; // 跳转链接 string uri = 2; // 气泡内容 string bubble = 3; // 是否推红点 int32 red_point = 4; // 城市ID int64 city_id = 5; // 是否弹窗 int32 is_popup = 6; // 弹窗内容 Popup popup = 7; // 是否默认tab bool defaultTab = 8; // 副标题 对应城市名 string sub_title = 9; // 锚点字段 string anchor = 10; // 内测文案 string internal_test = 11; } // 动态tab页-响应 message DynTabReply { // 动态tab详情列表 repeated DynTab dyn_tab = 1; } // 动态tab页-请求 message DynTabReq { // 青少年模式 // 1:开启青少年模式 int32 teenagers_mode = 1; } // 最近访问-标记已读-请求 message DynUpdOffsetReq { // 被访问者的UID int64 host_uid = 1; // 用户已读进度 string read_offset = 2; } // 最近访问-个人feed流列表-响应 message DynVideoPersonalReply { // 动态列表 repeated DynamicItem list = 1; // 偏移量 string offset = 2; // 是否还有更多数据 int32 has_more = 3; // 已读进度 string read_offset = 4; } // 最近访问-个人feed流列表-请求 message DynVideoPersonalReq { // 青少年模式 // 1:开启青少年模式 int32 teenagers_mode = 1; // 被访问者的mid int64 host_uid = 2; // 偏移量 第一页可传空 string offset = 3; // 标明下拉几次 int32 page = 4; // 是否是预加载 int32 is_preload = 5; // 清晰度 int32 qn = 6; // 流版本 int32 fnver = 7; // 流类型 int32 fnval = 8; // 是否强制使用域名 int32 force_host = 9; // 是否4k int32 fourk = 10; } // 动态视频页-请求 message DynVideoReq { // 青少年模式 int32 teenagers_mode = 1; // 透传 update_baseline string update_baseline = 2; // 透传 history_offset string offset = 3; // 向下翻页数 int32 page = 4; // 刷新方式 // 1:向上刷新 2:向下翻页 int32 refresh_type = 5; // 清晰度 int32 qn = 6; // 流版本 int32 fnver = 7; // 流类型 int32 fnval = 8; // 是否强制使用域名 int32 force_host = 9; // 是否4K int32 fourk = 10; } // 动态视频页-响应 message DynVideoReqReply { // 动态列表 repeated DynamicItem list = 1; // 更新的动态数 int32 update_num = 2; // 历史偏移 string history_offset = 3; // 更新基础信息 string update_baseline = 4; // 是否还有更多数据 int32 has_more = 5; } // 魔镜实验配置项 message Exp { // 实验名 string exp_name = 1; // 实验组 string exp_group = 2; } // 魔镜设置 message ExpConf { // 是否是魔镜请求 int32 exp_enable = 1; // 实验配置 repeated Exp exps = 2; } // 拓展 message Extend { // 类型 // topic:话题小卡 lbs:lbs hot:热门视频 game:游戏 string type = 1; // 卡片详情 oneof extend { // 话题小卡 ExtInfoTopic ext_info_topic = 2; // lbs ExtInfoLBS ext_info_lbs = 3; // 热门视频 ExtInfoHot ext_info_hot = 4; // 游戏 ExtInfoGame ext_info_game = 5; } } // 拓展信息-游戏小卡 message ExtInfoGame { // 标题 string title = 1; // 跳转地址 string uri = 2; // 小图标 string icon = 3; } // 拓展信息-热门视频 message ExtInfoHot { // 标题 string title = 1; // 跳转地址 string uri = 2; // 小图标 string icon = 3; } // 拓展信息-lbs message ExtInfoLBS { // 标题 string title = 1; // 跳转地址 string uri = 2; // 小图标 string icon = 3; // poiType int32 poi_type = 4; } // 拓展信息-话题小卡 message ExtInfoTopic { // 标题-话题名 string title = 1; // 跳转地址 string uri = 2; // 小图标 string icon = 3; } // 折叠分类 enum FoldType { FoldTypeZero = 0; // 占位 FoldTypePublish = 1; // 用户发布折叠 FoldTypeFrequent = 2; // 转发超频折叠 FoldTypeUnite = 3; // 联合投稿折叠 FoldTypeLimit = 4; // 动态受限折叠 } // 我的追番列表Item message FollowListItem { // season_id int32 season_id = 1; // 标题 string title = 2; // 封面图 string cover = 3; // 跳转链接 string url = 4; // 最新ep NewEP new_ep = 5; } // 位置定位-响应 message GeoCoderReply { // 以行政区划+道路+门牌号等信息组成的标准格式化地址 string address = 1; // 地址部件,address不满足需求时可自行拼接 AddressComponent address_component = 2; // 行政区划信息 AdInfo ad_info = 3; } // 位置定位-请求 message GeoCoderReq { // 纬度 double lat = 1; // 经度 double lng = 2; // 页面来源 string from = 3; } // 行政区划中心点坐标 message Gps { // 纬度 double lat = 1; // 经度 double lng = 2; } // 点赞动画 message LikeAnimation { // 开始动画 string begin = 1; // 过程动画 string proc = 2; // 结束动画 string end = 3; // id int64 like_icon_id = 4; } // 点赞拓展信息 message LikeInfo { // 点赞动画 LikeAnimation animation = 1; // 是否点赞 int32 is_like = 2; } // 点赞用户 message LikeUser { // 用户mid int64 uid = 1; // 用户昵称 string uname = 2; // 点击跳转链接 string uri = 3; } // 直播信息 message LiveInfo { // 是否在直播 // 0:未直播 1:正在直播 int32 is_living = 1; // 跳转链接 string uri = 2; } // 播放器类型 enum MediaType { MediaTypeNone = 0; // 本地 MediaTypeUGC = 1; // UGC MediaTypePGC = 2; // PGC MediaTypeLive = 3; // 直播 MediaTypeVCS = 4; // 小视频 } // 查看更多-列表单条数据 message MixUpListItem { // 用户mid int64 uid = 1; // 特别关注 // 0:否 1:是 int32 special_attention = 2; // 小红点状态 // 0:没有 1:有 int32 reddot_state = 3; // 直播信息 MixUpListLiveItem live_info = 4; // 昵称 string name = 5; // 头像 string face = 6; // 认证信息 OfficialVerify official = 7; // 大会员信息 VipInfo vip = 8; // 关注状态 Relation relation = 9; // int32 premiere_state = 10; // string uri = 11; } // 直播信息 message MixUpListLiveItem { // 直播状态 // 0:未直播 1:直播中 bool status = 1; // 房间号 int64 room_id = 2; // 跳转地址 string uri = 3; } // 模块 message Module { // 类型 // fold:折叠 author:发布人 dynamic:动态卡片内容 state:计数信息 forward:转发 extend:小卡信息 dispute:争议小黄条 desc:描述信息 // likeUser:点赞用户 upList:最近访问列表 followList:我的追番 string module_type = 1; oneof module_item{ // 折叠 ModuleFold module_fold = 2; // 发布人 ModuleAuthor module_author = 3; // 动态卡片内容 ModuleDynamic module_dynamic = 4; // 计数信息 ModuleState module_state = 5; // 转发 ModuleForward module_forward = 6; // 小卡信息 ModuleExtend module_extend = 7; // 争议小黄条 ModuleDispute module_dispute = 8; // 描述信息 ModuleDesc module_desc = 9; // 点赞用户 ModuleLikeUser module_likeUser= 10; // 最近访问列表 ModuleDynUpList module_upList = 11; // 我的追番 ModuleFollowList module_followList = 12; } } // 作者信息模块 message ModuleAuthor { // 用户mid int64 id = 1; // 时间标签 string ptime_label_text = 2; // 用户详情 UserInfo author = 3; // 装扮卡片 DecorateCard decorate_card = 4; } // 文本内容模块 message ModuleDesc { // 文本描述 repeated Description desc = 1; } // 争议小黄条模块 message ModuleDispute { // 标题 string title = 1; // 描述内容 string desc = 2; // 跳转链接 string uri = 3; } // 动态详情模块 message ModuleDynamic { // 卡片类型 // ugc:ugc卡 pgc:pgc卡 currSeason:付费课程系列 currBatch:付费课程批次 string card_type = 1; // 正文卡片 oneof card { // ugc卡 CardUGC card_ugc = 2; // pgc卡 CardPGC card_pgc = 3; // 付费课程系列 CardCurrSeason card_curr_season = 4; // 付费课程批次 CardCurrBatch card_curr_batch = 5; } } // 最近访问up主列表 message ModuleDynUpList { // 标题展示文案 string module_title = 1; // “全部”按钮文案 string show_all = 2; // up主列表 repeated UpListItem list = 3; } // 拓展信息 message ModuleExtend { // 拓展 repeated Extend extend = 1; } // 折叠模块 message ModuleFold { // 折叠分类(该字段废弃) int32 fold_type = 1; // 折叠文案 string text = 2; // 被折叠的动态 string fold_ids = 3; // 被折叠的用户信息 repeated UserInfo fold_users = 4; // 折叠分类 FoldType fold_type_v2 = 5; } // 我的追番列表 message ModuleFollowList { // 查看全部的跳转链接 string view_all_link = 1; // repeated FollowListItem list = 2; } // 转发模块 message ModuleForward { // 卡片类型 string card_type = 1; // 嵌套模型 repeated Module modules= 2; } // 点赞用户模块 message ModuleLikeUser { // 点赞用户 repeated LikeUser like_users = 1; // 文案 string display_text = 2; } // 计数信息模块 message ModuleState { // 转发数 int32 repost = 1; // 点赞数 int32 like = 2; // 评论数 int32 reply = 3; // 点赞拓展信息 LikeInfo like_info = 4; // 禁评 bool no_comment = 5; // 禁转 bool no_forward = 6; } // 认证名牌 message Nameplate { // nid int64 nid = 1; // 名称 string name = 2; // 图片地址 string image = 3; // 小图地址 string image_small = 4; // 等级 string level = 5; // 获取条件 string condition = 6; } // 最新ep message NewEP { // 最新话epid int32 id = 1; // 更新至XX话 string index_show = 2; // 更新剧集的封面 string cover = 3; } // 空响应 message NoReply { } // 空请求 message NoReq { } // 认证信息 message OfficialVerify { // 认证类型 // 127:未认证 0:个人 1:机构 int32 type = 1; // 认证描述 string desc = 2; // int32 is_atten = 3; } // 动态同城点击上报-响应 message OurCityClickReportReply { } // 动态同城点击上报-请求 message OurCityClickReportReq { // 动态ID string dynamic_id = 1; // 城市ID int64 city_id = 2; // 纬度 double lat = 3; // 经度 double lng = 4; } // PGC单季信息 message PGCSeason { // 是否完结 int32 is_finish = 1; // 标题 string title = 2; // 类型 int32 type = 3; } // 秒开参数 message PlayerPreloadParams { // 清晰度 int32 qn = 1; // 流版本 int32 fnver = 2; // 流类型 int32 fnval = 3; // 是否强制使用域名 int32 force_host = 4; // 是否4k int32 fourk = 5; } // 动态tab弹窗详情 message Popup { // 标题 string title = 1; // 文案 string desc = 2; // 文案附加跳转地址 string uri = 3; } // 关注关系 message Relation { // 关注状态 RelationStatus status = 1; // 关注 int32 is_follow = 2; // 被关注 int32 is_followed = 3; // 文案 string title = 4; } // 关注状态 enum RelationStatus { relation_status_none = 0; // relation_status_nofollow = 1; // 未关注 relation_status_follow = 2; // 关注 relation_status_followed = 3; // 被关注 relation_status_mutual_concern = 4; // 互相关注 relation_status_special = 5; // 特别关注 } // 分享需要 message ShareInfo { // 稿件avid int64 aid = 1; // 稿件bvid string bvid = 2; // 标题 string title = 3; // 副标题 string subtitle = 4; // 稿件封面 string cover = 5; // up mid int64 mid = 6; // up昵称 string name = 7; } // enum StyleType { STYLE_TYPE_NONE = 0; // STYLE_TYPE_LIVE = 1; // STYLE_TYPE_DYN_UP = 2; // } // 小视频卡片项 message SVideoItem { // 卡片类型 // av:稿件视频 string card_type = 1; // 模块内容 repeated SVideoModule modules = 2; // 动态ID str string dyn_id_str = 3; // 卡片游标 int64 index = 4; } // 小视频模块 message SVideoModule { // 类型 // author:发布人 player:播放器内容 desc:描述信息 stat:计数信息 string module_type = 1; oneof module_item { // 发布人 SVideoModuleAuthor module_author = 2; // 播放器内容 SVideoModulePlayer module_player = 3; // 描述信息 SVideoModuleDesc module_desc = 4; // 计数信息 SVideoModuleStat module_stat = 5; } } // 作者信息模块 message SVideoModuleAuthor { // 用户mid int64 mid = 1; // 用户昵称 string name = 2; // 用户头像 string face = 3; // 发布描述 string pub_desc = 4; // 是否关注up // 1:已关注 int32 is_attention = 5; // 跳转地址 string uri = 6; } // 文本内容模块 message SVideoModuleDesc { // 文本内容 string text = 1; // 跳转地址 string uri = 2; } // 播放器模块 message SVideoModulePlayer { // 标题 string title = 1; // 封面图 string cover = 2; // 跳转地址,秒开地址如果有会拼接player_preload可参考天马 string uri = 3; // aid int64 aid = 4; // cid int64 cid = 5; // 视频时长 int64 duration = 6; // 尺寸信息 Dimension dimension = 7; } // 计数信息模块 message SVideoModuleStat { // 计数内容 repeated SVideoStatInfo stat_info = 1; // 分享需要 ShareInfo share_info = 2; } // 小视频连播页-响应 message SVideoReply { // 列表 repeated SVideoItem list = 1; // 翻页游标 string offset = 2; // 是否还有更多数据 // 1:有 int32 has_more = 3; // 顶部 SVideoTop top = 4; } // 小视频连播页-请求 message SVideoReq { // 当前素材的id int64 oid = 1; // 当前素材类型 // 1:动态(如果有oid则必传) 2:热门分类 3:热点聚合 SVideoType type = 2; // 翻页offset string offset = 3; // 清晰度(旧版) int32 qn = 4; // 流版本(旧版) int32 fnver = 5; // 流类型(旧版) int32 fnval = 6; // 是否强制使用域名(旧版) int32 force_host = 7; // 是否4k(旧版) int32 fourk = 8; // 当前页面spm string spmid = 9; // 上级页面spm string from_spmid = 10; // 秒开参数 PlayerPreloadParams player_preload = 11; // 热门进入联播页的锚点aid int64 focus_aid = 12; // 秒开参数 bilibili.app.archive.middleware.v1.PlayerArgs player_args = 13; } // 计数内容 message SVideoStatInfo { // 计数icon // 1:分享符号 2:评论符号 3:点赞符号 int32 icon = 1; // 计数值 int64 num = 2; // 选中状态 // 1:选中 int32 selected = 3; // 跳转链接(如评论) string uri = 4; } // 顶部 message SVideoTop { // 联播页标题 string Title = 1; // 联播页导语 string Desc = 2; } // 入口联播页类型 enum SVideoType { TypeNone = 0; // 无类型 TypeDynamic = 1; // 动态 TypePopularIndex = 2; // 热门分类 TypePopularHotword = 3; // 热点聚合 } // 动态红点接口各tab offset信息 message TabOffset { // 1:综合页 2:视频页 int32 tab = 1; // 上一次对应列表页offset string offset = 2; } // up主列表 message UpListItem { // 是否有更新 // 0:没有 1:有 int32 has_update = 1; // up主头像 string face = 2; // up主昵称 string name = 3; // up主uid int64 uid = 4; } // 用户信息 message UserInfo { // 用户mid int64 mid = 1; // 用户昵称 string name = 2; // 用户头像 string face = 3; // 认证信息 OfficialVerify official = 4; // 大会员信息 VipInfo vip = 5; // 直播信息 LiveInfo live = 6; // 空间页跳转链接 string uri = 7; // 挂件信息 UserPendant pendant = 8; // 认证名牌 Nameplate nameplate = 9; } // 头像挂件信息 message UserPendant { // pid int64 pid = 1; // 名称 string name = 2; // 图片链接 string image = 3; // 有效期 int64 expire = 4; } // 角标信息 message VideoBadge { // 文案 string text = 1; // 文案颜色-日间 string text_color = 2; // 文案颜色-夜间 string text_color_night = 3; // 背景颜色-日间 string bg_color = 4; // 背景颜色-夜间 string bg_color_night = 5; // 边框颜色-日间 string border_color = 6; // 边框颜色-夜间 string border_color_night = 7; // 样式 int32 bg_style = 8; } // 番剧类型 enum VideoSubType { VideoSubTypeNone = 0; // 没有子类型 VideoSubTypeBangumi = 1; // 番剧 VideoSubTypeMovie = 2; // 电影 VideoSubTypeDocumentary = 3; // 纪录片 VideoSubTypeDomestic = 4; // 国创 VideoSubTypeTeleplay = 5; // 电视剧 } // 大会员信息 message VipInfo { // 大会员类型 int32 Type = 1; // 大会员状态 int32 status = 2; // 到期时间 int64 due_date = 3; // 标签 VipLabel label = 4; // 主题 int32 theme_type = 5; } // 大会员标签 message VipLabel { // 图片地址 string path = 1; }