dynamic.proto
syntax = "proto3";
package bilibili.app.dynamic.v2;
import "google/protobuf/any.proto";
import "bilibili/app/archive/middleware/v1/preload.proto";
// v2动态
service Dynamic {
// 动态视频页
rpc DynVideo(DynVideoReq) returns (DynVideoReply);
// 动态综合页
rpc DynAll(DynAllReq) returns (DynAllReply);
// 批量动态id获取动态详情
rpc DynDetails(DynDetailsReq) returns (DynDetailsReply);
// 视频页最近访问 - 个人feed流
rpc DynVideoPersonal(DynVideoPersonalReq) returns (DynVideoPersonalReply);
// 视频页最近访问 - 标记已读
rpc DynVideoUpdOffset(DynVideoUpdOffsetReq) returns (NoReply);
// 动态通用附加卡-follow/取消follow
rpc DynAdditionCommonFollow(DynAdditionCommonFollowReq) returns(DynAdditionCommonFollowReply);
// 动态点赞
rpc DynThumb(DynThumbReq) returns(NoReply);
// 动态发布生成临时卡
rpc DynFakeCard(DynFakeCardReq) returns(DynFakeCardReply);
// 关注推荐up主换一换
rpc DynRcmdUpExchange(DynRcmdUpExchangeReq) returns(DynRcmdUpExchangeReply);
// 综合页最近访问 - 个人feed流
rpc DynAllPersonal(DynAllPersonalReq) returns (DynAllPersonalReply);
// 综合页最近访问 - 标记已读
rpc DynAllUpdOffset(DynAllUpdOffsetReq) returns (NoReply);
// 投票操作接口
rpc DynVote(DynVoteReq) returns (DynVoteReply);
// 网关调用 - 查看更多-列表
rpc DynMixUpListViewMore(DynMixUpListViewMoreReq) returns (DynMixUpListViewMoreReply);
// 轻浏览
rpc DynLight(DynLightReq) returns (DynLightReply);
// 动态详情页
rpc DynDetail(DynDetailReq) returns (DynDetailReply);
// 点赞列表
rpc LikeList(LikeListReq) returns (LikeListReply);
// 转发列表
rpc RepostList(RepostListReq) returns (RepostListRsp);
// 空间页动态
rpc DynSpace(DynSpaceReq) returns (DynSpaceRsp);
// 未登录页分区UP主推荐
rpc DynUnLoginRcmd(DynRcmdReq) returns (DynRcmdReply);
}
// 空请求
message NoReq {}
// 空响应
message NoReply {}
// 动态视频页-请求
message DynVideoReq {
// 透传 update_baseline
string update_baseline = 1;
// 透传 history_offset
string offset = 2;
// 向下翻页数
int32 page = 3;
// 刷新方式
// 1:向上刷新 2:向下翻页
Refresh refresh_type = 4;
// 秒开参数 新版本废弃,统一使用player_args
PlayurlParam playurl_param = 5;
// 综合页当前更新的最大值
string assist_baseline = 6;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 7;
// 来源
string from = 8;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
}
// 刷新方式
enum Refresh {
// 刷新列表
refresh_new = 0;
// 请求历史
refresh_history = 1;
}
// 秒开通用参数
message PlayurlParam {
// 清晰度
int32 qn = 1;
// 流版本
int32 fnver = 2;
// 流类型
int32 fnval = 3;
// 是否强制使用域名
int32 force_host = 4;
// 是否4k
int32 fourk = 5;
}
// 动态视频页-响应
message DynVideoReply {
// 卡片列表
CardVideoDynList dynamic_list = 1;
// 动态卡片
CardVideoUpList video_up_list = 2;
// 视频页-我的追番
CardVideoFollowList video_follow_list = 3;
}
// 动态卡片列表
message CardVideoDynList {
// 动态列表
repeated DynamicItem list = 1;
// 更新的动态数
int64 update_num = 2;
// 历史偏移
string history_offset = 3;
// 更新基础信息
string update_baseline = 4;
// 是否还有更多数据
bool has_more = 5;
}
// 动态卡片
message DynamicItem {
// 动态卡片类型
DynamicType card_type = 1;
// 转发类型下,源卡片类型
DynamicType item_type = 2;
// 模块内容
repeated Module modules = 3;
// 操作相关字段
Extend extend = 4;
// 该卡片下面是否含有折叠卡
int32 has_fold = 5;
// 透传到客户端的埋点字段。
string server_info = 6;
}
// DynamicType 枚举-动态类型
enum DynamicType {
// 占位
dyn_none = 0;
// 转发
forward = 1;
// 稿件: ugc、小视频、短视频、UGC转PGC
av = 2;
// pgc:番剧、PGC番剧、PGC电影、PGC电视剧、PGC国创、PGC纪录片
pgc = 3;
// 付费更新批次
courses = 4;
// 折叠
fold = 5;
// 纯文字
word = 6;
// 图文
draw = 7;
// 专栏 原仅phone端
article = 8;
// 音频 原仅phone端
music = 9;
// 通用卡 方形
common_square = 10;
// 通用卡 竖形
common_vertical = 11;
// 直播卡 只有转发态
live = 12;
// 播单 原仅phone端 只有转发态
medialist = 13;
// 付费更新批次 只有转发态
courses_season = 14;
// 广告卡
ad = 15;
// 小程序卡
applet = 16;
// 订阅卡
subscription = 17;
// 直播推荐卡
live_rcmd = 18;
// 通栏
banner = 19;
// 合集卡
ugc_season = 20;
// 新订阅卡
subscription_new = 21;
}
// Module 动态模块
message Module {
// 类型
DynModuleType module_type = 1;
oneof module_item {
// 用户模块 1
ModuleAuthor module_author = 2;
// 争议黄条模块 2
ModuleDispute module_dispute = 3;
// 动态正文模块 3
ModuleDesc module_desc = 4;
// 动态卡模块 4
ModuleDynamic module_dynamic = 5;
// 点赞外露(废弃)
ModuleLikeUser module_likeUser = 6;
// 小卡模块 6
ModuleExtend module_extend = 7;
// 大卡模块 5
ModuleAdditional module_additional = 8;
// 计数模块 8
ModuleStat module_stat = 9;
// 折叠模块 9
ModuleFold module_fold = 10;
// 评论外露(废弃)
ModuleComment module_comment = 11;
// 外露交互模块(点赞、评论) 7
ModuleInteraction module_interaction = 12;
// 转发卡-原卡用户模块
ModuleAuthorForward module_author_forward = 13;
// 广告卡
ModuleAd module_ad = 14;
// 通栏
ModuleBanner module_banner = 15;
// 获取物料失败
ModuleItemNull module_item_null = 16;
// 分享组件
ModuleShareInfo module_share_info = 17;
// 相关推荐模块
ModuleRecommend module_recommend = 18;
// 顶部模块
ModuleTop module_top = 19;
// 底部模块
ModuleButtom module_buttom = 20;
// 转发卡计数模块
ModuleStat module_stat_forward = 21;
}
}
// 动态-发布人模块
message ModuleAuthor {
// 用户mid
int64 mid = 1;
// 时间标签
string ptime_label_text = 2;
// 用户详情
UserInfo author = 3;
// 装扮卡片
DecorateCard decorate_card = 4;
// 点击跳转链接
string uri = 5;
// 右侧操作区域 - 三点样式
repeated ThreePointItem tp_list = 6;
// 右侧操作区域样式枚举
ModuleAuthorBadgeType badge_type = 7;
// 右侧操作区域 - 按钮样式
ModuleAuthorBadgeButton badge_button = 8;
// 是否关注
// 1:关注 0:不关注 默认0,注:点赞列表使用,其他场景不使用该字段
int32 attend = 9;
// 关注状态
Relation relation = 10;
// 右侧操作区域 - 提权样式
Weight weight = 11;
// 是否展示关注
bool show_follow = 12;
// 是否置顶
bool is_top = 13;
}
// 用户信息
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;
// 用户等级
int32 level = 10;
// 用户简介
string sign = 11;
}
// 认证信息
message OfficialVerify {
// 127:未认证 0:个人 1:机构
int32 type = 1;
// 认证描述
string desc = 2;
// 是否关注
int32 is_atten = 3;
}
// 大会员信息
message VipInfo {
// 大会员类型
int32 Type = 1;
// 大会员状态
int32 status = 2;
// 到期时间
int64 due_date = 3;
// 标签
VipLabel label = 4;
// 主题
int32 theme_type = 5;
// 大会员角标
// 0:无角标 1:粉色大会员角标 2:绿色小会员角标
int32 avatar_subscript = 6;
// 昵称色值,可能为空,色值示例:#FFFB9E60
string nickname_color = 7;
}
// 大会员标签
message VipLabel {
// 图片地址
string path = 1;
// 文本值
string text = 2;
// 对应颜色类型
string label_theme = 3;
}
// 直播信息
message LiveInfo {
// 是否在直播
// 0:未直播 1:正在直播 (废弃)
int32 is_living = 1;
// 跳转链接
string uri = 2;
// 直播状态
LiveState live_state = 3;
}
// 直播状态
enum LiveState {
// 未直播
live_none = 0;
// 直播中
live_live = 1;
// 轮播中
live_rotation = 2;
}
// 头像挂件信息
message UserPendant {
// pid
int64 pid = 1;
// 名称
string name = 2;
// 图片链接
string image = 3;
// 有效期
int64 expire = 4;
}
// 认证名牌
message Nameplate {
// nid
int64 nid = 1;
// 名称
string name = 2;
// 图片地址
string image = 3;
// 小图地址
string image_small = 4;
// 等级
string level = 5;
// 获取条件
string condition = 6;
}
// 装扮卡片
message DecorateCard {
// 装扮卡片id
int64 id = 1;
// 装扮卡片链接
string card_url = 2;
// 装扮卡片点击跳转链接
string jump_url = 3;
// 粉丝样式
DecoCardFan fan = 4;
}
// 装扮卡片-粉丝勋章信息
message DecoCardFan {
// 是否是粉丝
int32 is_fan = 1;
// 数量
int32 number = 2;
// 数量 str
string number_str = 3;
// 颜色
string color = 4;
}
// 动态-争议小黄条模块
message ModuleDispute {
// 标题
string title = 1;
// 描述内容
string desc = 2;
// 跳转链接
string uri = 3;
}
// 动态-描述文字模块
message ModuleDesc {
// 描述信息(已按高亮拆分)
repeated Description desc = 1;
// 点击跳转链接
string jump_uri = 2;
// 文本原本
string text = 3;
}
// Description 文本描述
message Description {
// 文本内容
string text = 1;
// 文本类型
DescType type = 2;
// 点击跳转链接
string uri = 3;
// emoji类型
EmojiType emoji_type = 4;
// 商品类型
string goods_type = 5;
// 前置Icon
string icon_url = 6;
// icon_name
string icon_name = 7;
// 资源ID
string rid = 8;
// 商品卡特殊字段
ModuleDescGoods goods = 9;
// 文本原始文案
string orig_text = 10;
}
// 文本类型
enum DescType {
// 占位
desc_type_none = 0;
// 文本
desc_type_text = 1;
// @
desc_type_aite = 2;
// 抽奖
desc_type_lottery = 3;
// 投票
desc_type_vote = 4;
// 话题
desc_type_topic = 5;
// 商品
desc_type_goods = 6;
// bv
desc_type_bv = 7;
// av
desc_type_av = 8;
// 表情
desc_type_emoji = 9;
// 外露用户
desc_type_user = 10;
// 专栏
desc_type_cv = 11;
// 小视频
desc_type_vc = 12;
// 网址
desc_type_web = 13;
// 淘宝
desc_type_taobao = 14;
// 邮箱
desc_type_mail = 15;
// 番剧season
desc_type_ogv_season = 16;
// 番剧ep
desc_type_ogv_ep = 17;
}
// 表情包类型
enum EmojiType {
// 占位
emoji_none = 0;
// emoji旧类型
emoji_old = 1;
// emoji新类型
emoji_new = 2;
// 大会员表情
vip = 3;
}
// 正文商品卡参数
message ModuleDescGoods {
// 商品类型
// 1:淘宝 2:会员购
int32 source_type = 1;
// 跳转链接
string jump_url = 2;
// schema_url
string schema_url = 3;
// item_id
int64 item_id = 4;
// open_white_list
repeated string open_white_list = 5;
// use_web_v2
bool user_web_v2 = 6;
// ad mark
string ad_mark = 7;
// schemaPackageName(Android用)
string schema_package_name = 8;
}
// 动态-详情模块
message ModuleDynamic {
// 类型
ModuleDynamicType type = 1;
oneof module_item {
//稿件
MdlDynArchive dyn_archive = 2;
//pgc
MdlDynPGC dyn_pgc = 3;
//付费课程-系列
MdlDynCourSeason dyn_cour_season = 4;
//付费课程-批次
MdlDynCourBatch dyn_cour_batch = 5;
//转发卡
MdlDynForward dyn_forward = 6;
//图文
MdlDynDraw dyn_draw = 7;
//专栏
MdlDynArticle dyn_article = 8;
//音频
MdlDynMusic dyn_music = 9;
//通用卡方
MdlDynCommon dyn_common = 10;
//直播卡
MdlDynLive dyn_common_live = 11;
//播单
MdlDynMedialist dyn_medialist = 12;
//小程序卡
MdlDynApplet dyn_applet = 13;
//订阅卡
MdlDynSubscription dyn_subscription = 14;
//直播推荐卡
MdlDynLiveRcmd dyn_live_rcmd = 15;
//UGC合集
MdlDynUGCSeason dyn_ugc_season = 16;
//订阅卡
MdlDynSubscriptionNew dyn_subscription_new = 17;
}
}
// 动态详情模块类型
enum ModuleDynamicType {
// 稿件
mdl_dyn_archive = 0;
// pgc
mdl_dyn_pgc = 1;
// 付费课程-系列
mdl_dyn_cour_season = 2;
// 付费课程-批次
mdl_dyn_cour_batch = 3;
// 转发卡
mdl_dyn_forward = 4;
// 图文
mdl_dyn_draw = 5;
// 专栏
mdl_dyn_article = 6;
// 音频
mdl_dyn_music = 7;
// 通用卡方
mdl_dyn_common = 8;
// 直播卡
mdl_dyn_live = 9;
// 播单
mdl_dyn_medialist = 10;
// 小程序卡
mdl_dyn_applet = 11;
// 订阅卡
mdl_dyn_subscription = 12;
// 直播推荐卡
mdl_dyn_live_rcmd = 13;
// UGC合集
mdl_dyn_ugc_season = 14;
// 订阅卡
mdl_dyn_subscription_new = 15;
}
// 动态-详情模块-稿件
message MdlDynArchive {
// 标题
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;
// 是否能够自动播放
bool can_play= 12;
// stype
VideoType stype = 13;
// 是否PGC
bool isPGC = 14;
// inline播放地址
string inlineURL = 15;
// PGC的epid
int64 EpisodeId = 16;
// 子类型
int32 SubType = 17;
// PGC的ssid
int64 PgcSeasonId = 18;
// 播放按钮
string play_icon = 19;
// 时长
int64 duration = 20;
// 跳转地址
string jump_url = 21;
// 番剧是否为预览视频
bool is_preview = 22;
// 新角标,多个角标之前没有间距
repeated VideoBadge badge_category = 23;
// 当前是否是pgc正片
bool is_feature = 24;
// 是否是预约召回
ReserveType reserve_type = 25;
// bvid
string bvid = 26;
// 播放数
int32 view = 27;
}
// 播放器类型
enum MediaType {
// 本地
MediaTypeNone = 0;
// UGC
MediaTypeUGC = 1;
// PGC
MediaTypePGC = 2;
// 直播
MediaTypeLive = 3;
// 小视频
MediaTypeVCS = 4;
}
enum ReserveType {
// 占位
reserve_none = 0;
// 预约召回
reserve_recall = 1;
}
// Dimension 尺寸信息
message Dimension {
//
int64 height = 1;
//
int64 width = 2;
//
int64 rotate = 3;
}
// 角标信息
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;
// 背景透明度-日间
int32 bg_alpha = 9;
// 背景透明度-夜间
int32 bg_alpha_night = 10;
}
// 视频类型
enum VideoType {
//普通视频
video_type_general = 0;
//动态视频
video_type_dynamic = 1;
//直播回放视频
video_type_playback = 2;
}
// MdlDynPGC 动态-详情模块-pgc
message MdlDynPGC {
// 标题
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;
// 番剧是否为预览视频
bool is_preview = 13;
// 尺寸信息
Dimension dimension = 14;
// 角标,多个角标之前有间距
repeated VideoBadge badge = 15;
// 是否能够自动播放
bool can_play= 16;
// season
PGCSeason season = 17;
// 播放按钮
string play_icon = 18;
// 时长
int64 duration = 19;
// 跳转地址
string jump_url = 20;
// 新角标,多个角标之前没有间距
repeated VideoBadge badge_category = 21;
// 当前是否是pgc正片
bool is_feature = 22;
}
// 番剧类型
enum VideoSubType {
// 没有子类型
VideoSubTypeNone = 0;
// 番剧
VideoSubTypeBangumi = 1;
// 电影
VideoSubTypeMovie = 2;
// 纪录片
VideoSubTypeDocumentary = 3;
// 国创
VideoSubTypeDomestic = 4;
// 电视剧
VideoSubTypeTeleplay = 5;
}
// PGC单季信息
message PGCSeason {
// 是否完结
int32 is_finish = 1;
// 标题
string title = 2;
// 类型
int32 type = 3;
}
// 动态-详情模块-付费课程系列
message MdlDynCourSeason {
// 标题
string title = 1;
// 封面图
string cover = 2;
// 跳转地址
string uri = 3;
// 展示项 1(更新信息)
string text_1 = 4;
// 描述信息
string desc = 5;
// 角标
VideoBadge badge = 6;
// 播放按钮
string play_icon = 7;
}
// 动态-详情模块-付费课程批次
message MdlDynCourBatch {
// 标题
string title = 1;
// 封面图
string cover = 2;
// 跳转地址
string uri = 3;
// 展示项 1(本集标题)
string text_1 = 4;
// 展示项 2(更新了多少个视频)
string text_2 = 5;
// 角标
VideoBadge badge = 6;
// 播放按钮
string play_icon = 7;
}
// 动态列表渲染部分-详情模块-转发模块
message MdlDynForward {
// 动态转发核心模块 套娃
DynamicItem item = 1;
// 透传类型
// 0:分享 1:转发
int32 rtype = 2;
}
// 动态列表渲染部分-详情模块-图文模块
message MdlDynDraw {
// 图片
repeated MdlDynDrawItem items = 1;
// 跳转地址
string uri = 2;
// 图文ID
int64 id = 3;
}
// MdlDynDrawItem 动态列表渲染部分-详情模块-图文
message MdlDynDrawItem {
// 图片链接
string src = 1;
// 图片宽度
int64 width = 2;
// 图片高度
int64 height = 3;
// 图片大小
float size = 4;
// 图片标签
repeated MdlDynDrawTag tags = 5;
}
// 动态列表渲染部分-详情模块-图文-标签
message MdlDynDrawTag {
// 标签类型
MdlDynDrawTagType type = 1;
// 标签详情
MdlDynDrawTagItem item = 2;
}
// 图文标签类型
enum MdlDynDrawTagType {
// 占位
mdl_draw_tag_none = 0;
// 普通标签
mdl_draw_tag_common = 1;
// 商品标签
mdl_draw_tag_goods = 2;
// 用户昵称
mdl_draw_tag_user = 3;
// 话题名称
mdl_draw_tag_topic = 4;
// lbs标签
mdl_draw_tag_lbs = 5;
}
// 动态列表部分-详情模块-图文-标签详情
message MdlDynDrawTagItem {
// 跳转链接
string url = 1;
// 标签内容
string text = 2;
// 坐标-x
int64 x = 3;
// 坐标-y
int64 y = 4;
// 方向
int32 orientation = 5;
// 来源
// 0:未知 1:淘宝 2:自营
int32 source = 6;
// 商品id
int64 item_id = 7;
// 用户mid
int64 mid = 8;
// 话题id
int64 tid = 9;
// lbs信息
string poi = 10;
// 商品标签链接
string schema_url = 11;
}
// 动态列表渲染部分-详情模块-专栏模块
message MdlDynArticle {
// 专栏id
int64 id = 1;
// 跳转地址
string uri = 2;
// 标题
string title = 3;
// 文案部分
string desc = 4;
// 配图
repeated string covers = 5;
// 阅读量标签
string label = 6;
// 模板类型
int32 templateID = 7;
}
// 动态列表渲染部分-详情模块-音频模块
message MdlDynMusic {
// 音频id
int64 id = 1;
// 跳转地址
string uri = 2;
// upId
int64 up_id = 3;
// 歌名
string title = 4;
// 专辑封面
string cover = 5;
// 展示项1
string label1 = 6;
// upper
string upper = 7;
}
// 动态列表渲染部分-详情模块-通用
message MdlDynCommon {
// 物料id
int64 oid = 1;
// 跳转地址
string uri = 2;
// 标题
string title = 3;
// 描述 漫画卡标题下第一行
string desc = 4;
// 封面
string cover = 5;
// 标签1 漫画卡标题下第二行
string label = 6;
// 所属业务类型
int32 bizType = 7;
// 镜像数据ID
int64 sketchID = 8;
// 卡片样式
MdlDynCommonType style = 9;
// 角标
repeated VideoBadge badge = 10;
}
//
enum MdlDynCommonType {
//
mdl_dyn_common_none = 0;
//
mdl_dyn_common_square = 1;
//
mdl_dyn_common_vertica = 2;
}
// 动态列表渲染部分-详情模块-直播
message MdlDynLive {
// 房间号
int64 id = 1;
// 跳转地址
string uri = 2;
// 直播间标题
string title = 3;
// 直播间封面
string cover = 4;
// 标题1 例: 陪伴学习
string cover_label = 5;
// 标题2 例: 54.6万人气
string cover_label2 = 6;
// 直播状态
LiveState live_state = 7;
// 直播角标
VideoBadge badge = 8;
// 是否是预约召回
ReserveType reserve_type = 9;
}
// 动态列表渲染部分-详情模块-播单
message MdlDynMedialist {
// 播单id
int64 id = 1;
// 跳转地址
string uri = 2;
// 主标题
string title = 3;
// 副标题
string sub_title = 4;
// 封面图
string cover = 5;
// 封面类型
int32 cover_type = 6;
// 角标
VideoBadge badge = 7;
}
// 动态列表渲染部分-详情模块-小程序/小游戏
message MdlDynApplet {
// 小程序id
int64 id = 1;
// 跳转地址
string uri = 2;
// 主标题
string title = 4;
// 副标题
string sub_title = 5;
// 封面图
string cover = 6;
// 小程序icon
string icon = 7;
// 小程序标题
string label = 8;
// 按钮文案
string button_title = 9;
}
// 动态列表渲染部分-详情模块-订阅卡
message MdlDynSubscription {
// 卡片物料id
int64 id = 1;
// 广告创意id
int64 ad_id = 2;
// 跳转地址
string uri = 3;
// 标题
string title = 4;
// 封面图
string cover = 5;
// 广告标题
string ad_title = 6;
// 角标
VideoBadge badge = 7;
// 小提示
string tips = 8;
}
// 动态列表渲染部分-详情模块-直播推荐
message MdlDynLiveRcmd {
// 直播数据
string content = 1;
// 是否是预约召回
ReserveType reserve_type = 2;
}
// 动态列表渲染部分-UGC合集
message MdlDynUGCSeason {
// 标题
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;
// 卡片物料id
int64 id = 7;
// inline播放地址
string inlineURL = 8;
// 是否能够自动播放
bool can_play= 9;
// 播放按钮
string play_icon = 10;
// avid
int64 avid = 11;
// cid
int64 cid = 12;
// 尺寸信息
Dimension dimension = 13;
// 时长
int64 duration = 14;
// 跳转地址
string jump_url = 15;
}
// 动态新附加卡
message MdlDynSubscriptionNew {
//样式类型
MdlDynSubscriptionNewStyle style = 1;
// 新订阅卡数据
oneof item {
//
MdlDynSubscription dyn_subscription = 2;
// 直播推荐
MdlDynLiveRcmd dyn_live_rcmd = 3;
}
}
//
enum MdlDynSubscriptionNewStyle {
// 占位
mdl_dyn_subscription_new_style_nont = 0;
// 直播
mdl_dyn_subscription_new_style_live = 1;
// 图文
mdl_dyn_subscription_new_style_draw = 2;
}
// 动态-附加卡模块
message ModuleAdditional {
// 类型
AdditionalType type = 1;
oneof item {
// 废弃
AdditionalPGC pgc = 2;
//
AdditionGoods goods = 3;
// 废弃
AdditionVote vote = 4;
//
AdditionCommon common = 5;
//
AdditionEsport esport = 6;
// 投票
AdditionVote2 vote2 = 8;
//
AdditionUgc ugc = 9;
// up主预约发布卡
AdditionUP up = 10;
}
// 附加卡物料ID
int64 rid = 7;
}
// 枚举-动态附加卡
enum AdditionalType {
// 占位
additional_none = 0;
// 附加卡-追番
additional_type_pgc = 1;
// 附加卡-商品
additional_type_goods = 2;
// 附加卡投票
additional_type_vote = 3;
// 附加通用卡
additional_type_common = 4;
// 附加电竞卡
additional_type_esport = 5;
// 附加UP主推荐卡
additional_type_up_rcmd = 6;
// 附加卡-ugc
additional_type_ugc = 7;
// UP主预约卡
additional_type_up_reservation = 8;
}
// 动态-附加卡-番剧卡
message AdditionalPGC {
// 头部说明文案
string head_text = 1;
// 标题
string title = 2;
// 展示图
string image_url = 3;
// 描述文字1
string desc_text_1 = 4;
// 描述文字2
string desc_text_2 = 5;
// 点击跳转链接
string url = 6;
// 按钮
AdditionalButton button = 7;
// 头部icon
string head_icon = 8;
// style
ImageStyle style = 9;
// 动态本身的类型 type
string type = 10;
}
// 枚举-附加卡样式
enum ImageStyle {
//
add_style_vertical = 0;
//
add_style_square = 1;
}
// 动态-附加卡-按钮
message AdditionalButton {
// 按钮类型
AddButtonType type = 1;
// jump-跳转样式
AdditionalButtonStyle jump_style = 2;
// jump-跳转链接
string jump_url = 3;
// button-未点样式
AdditionalButtonStyle uncheck = 4;
// button-已点样式
AdditionalButtonStyle check = 5;
// button-当前状态
AdditionalButtonStatus status = 6;
// 按钮点击样式
AdditionalButtonClickType click_type = 7;
}
// 按钮类型
enum AddButtonType {
// 占位
bt_none = 0;
// 跳转
bt_jump = 1;
// 按钮
bt_button = 2;
}
// 附加卡按钮状态
enum AdditionalButtonStatus {
//
none = 0;
//
uncheck = 1;
//
check = 2;
}
// 附加卡按钮点击类型
enum AdditionalButtonClickType {
// 通用按钮
click_none = 0;
// 预约卡按钮
click_up = 1;
}
// 动态-附加卡-按钮样式
message AdditionalButtonStyle {
// icon
string icon = 1;
// 文案
string text = 2;
// 按钮点击交互
AdditionalButtonInteractive interactive = 3;
// 当前按钮填充样式
AddButtonBgStyle bg_style = 4;
// toast文案, 当disable=1时有效
string toast = 5;
// 当前按钮样式,
// 0:高亮 1:置灰(按钮不可点击)
DisableState disable = 6;
}
enum DisableState {
// 高亮
highlight = 0;
// 置灰(按钮不可点击)
gary = 1;
}
enum AddButtonBgStyle {
// 默认填充
fill = 0;
// 描边
stroke = 1;
// 置灰
gray = 2;
}
message AdditionalButtonInteractive {
// 是否弹窗
string popups = 1;
// 弹窗确认文案
string confirm = 2;
// 弹窗取消文案
string cancel = 3;
}
// 动态-附加卡-商品卡
message AdditionGoods {
// 推荐文案
string rcmd_desc = 1;
// 商品信息
repeated GoodsItem goods_items = 2;
// 附加卡类型
string card_type = 3;
// 头部icon
string icon = 4;
// 商品附加卡整卡跳转
string uri = 5;
// 商品类型
// 1:淘宝 2:会员购,注:实际是获取的goods_items里面的第一个source_type
int32 source_type = 6;
}
// 动态-附加卡-商品卡-商品
message GoodsItem {
// 图片
string cover = 1;
// schemaPackageName(Android用)
string schema_package_name = 2;
// 商品类型
// 1:淘宝 2:会员购
int32 source_type = 3;
// 跳转链接
string jump_url = 4;
// 跳转文案
string jump_desc = 5;
// 标题
string title = 6;
// 摘要
string brief = 7;
// 价格
string price = 8;
// item_id
int64 item_id = 9;
// schema_url
string schema_url = 10;
// open_white_list
repeated string open_white_list = 11;
// use_web_v2
bool user_web_v2 = 12;
// ad mark
string ad_mark = 13;
}
// 动态-附加卡-投票
message AdditionVote {
// 封面图
string image_url = 1;
// 标题
string title = 2;
// 展示项1
string text_1 = 3;
// button文案
string button_text = 4;
// 点击跳转链接
string url = 5;
}
// 动态-附加卡-UGC视频附加卡
message AdditionUgc {
// 说明文案
string head_text = 1;
// 稿件标题
string title = 2;
// 封面
string cover = 3;
// 描述文字1
string desc_text_1 = 4;
// 描述文字2
string desc_text_2 = 5;
// 接秒开
string uri = 6;
// 时长
string duration = 7;
// 标题支持换行-标题支持单行和双行,本期不支持填充up昵称,支持双行展示,字段默认为true
bool line_feed = 8;
// 附加卡类型
string card_type = 9;
}
// 动态-附加卡-通用卡
message AdditionCommon {
// 头部说明文案
string head_text = 1;
// 标题
string title = 2;
// 展示图
string image_url = 3;
// 描述文字1
string desc_text_1 = 4;
// 描述文字2
string desc_text_2 = 5;
// 点击跳转链接
string url = 6;
// 按钮
AdditionalButton button = 7;
// 头部icon
string head_icon = 8;
// style
ImageStyle style = 9;
// 动态本身的类型 type
string type = 10;
// 附加卡类型
string card_type = 11; // ogv manga
}
// 动态-附加卡-电竞卡
message AdditionEsport {
// 电竞类型
EspaceStyle style = 1;
oneof item {
// moba类
AdditionEsportMoba addition_esport_moba = 2;
}
// 动态本身的类型 type
string type = 3;
// 附加卡类型
string card_type = 4; // ogv manga
}
// 附加大卡-电竞卡样式
enum EspaceStyle {
// moba类
moba = 0;
}
// 动态-附加卡-电竞卡-moba类
message AdditionEsportMoba {
// 头部说明文案
string head_text = 1;
// 标题
string title = 2;
// 战队列表
repeated MatchTeam match_team = 3;
// 比赛信息
AdditionEsportMobaStatus addition_esport_moba_status = 4;
// 卡片跳转
string uri = 5;
// 按钮
AdditionalButton button = 6;
// 副标题
string sub_title = 7;
// 动态本身的类型 type
string type = 10;
// 附加卡类型
string card_type = 11;
// 附加卡图标
string head_icon = 12;
}
// 动态-附加卡-电竞卡-moba类-比赛信息
message AdditionEsportMobaStatus {
// 文案类
repeated AdditionEsportMobaStatusDesc addition_esport_moba_status_desc = 1;
// 比赛状态文案
string title = 2;
// 比赛状态状态
int32 status = 3;
// 日间色值
string color = 4;
// 夜间色值
string night_color = 5;
}
// 动态-附加卡-电竞卡-moba类-比赛信息-文案类
message AdditionEsportMobaStatusDesc {
// 文案
string title = 1;
// 日间色值
string color = 2;
// 夜间色值
string night_color = 3;
}
// 动态-附加卡-电竞卡-战队
message MatchTeam {
// 战队ID
int64 id = 1;
// 战队名
string name = 2;
// 战队图标
string cover = 3;
// 日间色值
string color = 4;
// 夜间色值
string night_color = 5;
}
// up主预约发布卡
message AdditionUP {
// 标题
string title = 1;
// 高亮文本,描述文字1
HighlightText desc_text_1 = 2;
// 描述文字2
string desc_text_2 = 3;
// 点击跳转链接
string url = 4;
// 按钮
AdditionalButton button = 5;
// 附加卡类型
string card_type = 6;
// 预约人数(用于预约人数变化)
int64 reserve_total = 7;
// 活动皮肤
AdditionalActSkin act_skin = 8;
// 预约id
int64 rid = 9;
}
// 活动皮肤
message AdditionalActSkin {
// 动画SVGA资源
string svga = 1;
// 动画SVGA最后一帧图片资源
string last_image = 2;
// 动画播放次数
int64 play_times = 3;
}
// 高亮文本
message HighlightText {
// 展示文本
string text = 1;
// 高亮类型
HighlightTextStyle text_style = 2;
}
// 文本高亮枚举
enum HighlightTextStyle {
// 默认
style_none = 0;
// 高亮
style_highlight = 1;
}
// 动态-小卡模块
message ModuleExtend {
// 详情
repeated ModuleExtendItem extend = 1;
// 模块整体跳转uri
string uri = 2; // 废弃
}
// 动态-拓展小卡模块
message ModuleExtendItem {
// 类型
DynExtendType type = 1;
// 卡片详情
oneof extend {
// 废弃
ExtInfoTopic ext_info_topic = 2;
// 废弃
ExtInfoLBS ext_info_lbs = 3;
// 废弃
ExtInfoHot ext_info_hot = 4;
// 废弃
ExtInfoGame ext_info_game = 5;
//
ExtInfoCommon ext_info_common = 6;
//
ExtInfoOGV ext_info_ogv = 7;
}
}
// 动态小卡类型
enum DynExtendType {
// 占位
dyn_ext_type_none = 0;
// 话题小卡
dyn_ext_type_topic = 1;
// lbs小卡
dyn_ext_type_lbs = 2;
// 热门小卡
dyn_ext_type_hot = 3;
// 游戏小卡
dyn_ext_type_game = 4;
// 通用小卡
dyn_ext_type_common = 5;
// 必剪小卡
dyn_ext_type_biliCut = 6;
// ogv小卡
dyn_ext_type_ogv = 7;
// 自动附加ogv小卡
dyn_ext_type_auto_ogv = 8;
}
// 动态-拓展小卡模块-话题小卡
message ExtInfoTopic {
// 标题-话题名
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 ExtInfoHot {
// 标题
string title = 1;
// 跳转地址
string uri = 2;
// 小图标
string icon = 3;
}
// 动态-拓展小卡模块-游戏小卡
message ExtInfoGame {
// 标题
string title = 1;
// 跳转地址
string uri = 2;
// 小图标
string icon = 3;
}
// 动态-拓展小卡模块-通用小卡
message ExtInfoCommon {
// 标题
string title = 1;
// 跳转地址
string uri = 2;
// 小图标
string icon = 3;
// poiType
int32 poi_type = 4;
// 类型
DynExtendType type = 5;
// 客户端埋点用
string sub_module = 6;
// 行动点文案
string action_text = 7;
// 行动点链接
string action_url = 8;
// 资源rid
int64 rid = 9;
// 轻浏览是否展示
bool is_show_light = 10;
}
// 动态-拓展小卡模块-ogv小卡
message ExtInfoOGV {
// ogv小卡
repeated InfoOGV info_ogv = 1;
}
// 动态-拓展小卡模块-ogv小卡-(one of 片单、榜单、分区)
message InfoOGV {
// 标题
string title = 1;
// 跳转地址
string uri = 2;
// 小图标
string icon = 3;
// 客户端埋点用
string sub_module = 4;
}
// 外露交互模块
message ModuleInteraction {
// 外露交互模块
repeated InteractionItem interactionItem = 1;
}
// 外露交互模块
message InteractionItem {
// 外露模块类型
LocalIconType icon_type = 1;
// 外露模块文案
repeated Description desc = 2;
// 外露模块uri相关 根据type不同用法不同
string uri = 3;
// 动态id
string dynamic_id = 4;
// 评论mid
int64 comment_mid = 6;
}
// 外露模块类型
enum LocalIconType {
//
local_icon_comment = 0;
//
local_icon_like = 1;
}
// DynUriType
enum DynUriType {
//
dyn_uri_type_none = 0;
// 直接跳转对应uri
dyn_uri_type_direct = 1;
// 作为后缀拼接
dyn_uri_type_suffix = 2;
}
// 动态-计数模块
message ModuleStat {
// 转发数
int64 repost = 1;
// 点赞数
int64 like = 2;
// 评论数
int64 reply = 3;
// 点赞拓展信息
LikeInfo like_info = 4;
// 禁评
bool no_comment = 5;
// 禁转
bool no_forward = 6;
// 点击评论跳转链接
string reply_url = 7;
// 禁评文案
string no_comment_text = 8;
// 禁转文案
string no_forward_text = 9;
}
// 动态-折叠模块
message ModuleFold {
// 折叠分类
FoldType fold_type = 1;
// 折叠文案
string text = 2;
// 被折叠的动态
string fold_ids = 3;
// 被折叠的用户信息
repeated UserInfo fold_users = 4;
}
// 折叠类型
enum FoldType {
// 占位
FoldTypeZore = 0;
// 用户发布折叠
FoldTypePublish = 1;
// 转发超频折叠
FoldTypeFrequent = 2;
// 联合投稿折叠
FoldTypeUnite = 3;
// 动态受限折叠
FoldTypeLimit = 4;
}
// 动态综合页-请求
message DynAllReq {
// 透传 update_baseline
string update_baseline = 1;
// 透传 history_offset
string offset = 2;
// 向下翻页数
int32 page = 3;
// 刷新方式 1向上刷新 2向下翻页
Refresh refresh_type = 4;
// 秒开参数 新版本废弃,统一使用player_args
PlayurlParam playurl_param = 5;
// 综合页当前更新的最大值
string assist_baseline = 6;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 7;
// 推荐up主入参(new的时候传)
RcmdUPsParam rcmd_ups_param = 8;
// 广告参数
AdParam ad_param = 9;
// 是否冷启
int32 cold_start = 10;
// 来源
string from = 11;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 12;
}
// 推荐up主入参
message RcmdUPsParam {
int64 dislike_ts = 1;
}
// 综合页请求广告所需字段,由客户端-网关透传
message AdParam {
//综合页请求广告所需字段,由客户端-网关透传
string ad_extra = 1;
// request_id
string request_id = 2;
}
// 动态综合页-响应
message DynAllReply {
// 卡片列表
DynamicList dynamic_list = 1;
// 顶部up list
CardVideoUpList up_list = 2;
// 话题广场
TopicList topic_list = 3;
// 无关注推荐
Unfollow unfollow = 4;
// 分区UP推荐
DynRegionRcmd region_rcmd = 5;
}
//动态卡片列表
message DynamicList {
// 动态列表
repeated DynamicItem list = 1;
// 更新的动态数
int64 update_num = 2;
// 历史偏移
string history_offset = 3;
// 更新基础信息
string update_baseline = 4;
// 是否还有更多数据
bool has_more = 5;
}
// 综合页-话题广场
message TopicList {
// 模块标题
string title = 1;
// 话题列表
repeated TopicListItem topic_list_item = 2;
// 发起活动
TopicButton act_button = 3;
// 查看更多
TopicButton more_button = 4;
// 透传服务端上报
string server_info = 5;
}
// 综合页-话题广场-话题
message TopicListItem {
// 前置图标
string icon = 1;
// 前置图标文案
string icon_title = 2;
// 话题id
int64 topic_id = 3;
// 话题名
string topic_name = 4;
// 跳转链接
string url = 5;
// 卡片位次
int64 pos = 6;
// 透传服务端上报
string server_info = 7;
}
// 话题广场操作按钮
message TopicButton {
// 按钮图标
string icon = 1;
// 按钮文案
string title = 2;
// 跳转
string jump_uri = 3;
}
// 综合页-无关注列表
message Unfollow {
// 标题展示文案
string title = 1;
// 无关注列表
repeated UnfollowUserItem list = 2;
// trackID
string TrackId = 3;
}
// 综合页-无关注列表
message UnfollowUserItem {
// 是否有更新
bool has_update = 1;
// up主头像
string face = 2;
// up主昵称
string name = 3;
// up主uid
int64 uid = 4;
// 排序字段 从1开始
int32 pos = 5;
// 直播状态
LiveState live_state = 6;
// 认证信息
OfficialVerify official = 7;
// 大会员信息
VipInfo vip = 8;
// up介绍
string sign = 9;
// 标签信息
string label = 10;
// 按钮
AdditionalButton button = 11;
// 跳转地址
string uri = 12;
}
// 批量动态id获取动态详情-请求
message DynDetailsReq {
// 动态id
string dynamic_ids = 1;
// 秒开参数 新版本废弃,统一使用player_args
PlayurlParam playurl_param = 2;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 3;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
}
// 批量动态id获取动态详情-响应
message DynDetailsReply {
// 动态列表
repeated DynamicItem list = 1;
}
// 最近访问-个人feed流列表-请求
message DynVideoPersonalReq {
// 被访问者的 UID
int64 host_uid = 1;
// 偏移量 第一页可传空
string offset = 2;
// 标明下拉几次
int32 page = 3;
// 是否是预加载
int32 is_preload = 4;
// 秒开参数 新版本废弃,统一使用player_args
PlayurlParam playurl_param = 5;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 6;
// 服务端生成的透传上报字段
string footprint = 7;
// 来源
string from = 8;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
}
// 最近访问-个人feed流列表-响应
message DynVideoPersonalReply {
// 动态列表
repeated DynamicItem list = 1;
// 偏移量
string offset = 2;
// 是否还有更多数据
bool has_more = 3;
// 已读进度
string read_offset = 4;
// 关注状态
Relation relation = 5;
// 顶部预约卡
TopAdditionUP addition_up = 6;
}
// 最近访问-标记已读-请求
message DynVideoUpdOffsetReq {
// 被访问者的UID
int64 host_uid = 1;
// 用户已读进度
string read_offset = 2;
// 服务端生成的透传上报字段
string footprint = 3;
}
// 视频页-最近访问
message CardVideoUpList {
// 标题展示文案
string title = 1;
// up主列表
repeated UpListItem list = 2;
// 服务端生成的透传上报字段
string footprint = 3;
// 直播数
int32 show_live_num = 4;
// 跳转label
UpListMoreLabel more_label = 5;
// 标题开关(综合页)
int32 title_switch = 6;
// 是否展示右上角查看更多label
bool show_more_label = 7;
// 是否在快速消费页查看更多按钮
bool show_in_personal = 8;
// 是否展示右侧查看更多按钮
bool show_more_button = 9;
}
// 最常访问-查看更多
message UpListMoreLabel {
// 文案
string title = 1;
// 跳转地址
string uri = 2;
}
// 动态顶部up列表-up主信息
message UpListItem {
// 是否有更新
bool has_update = 1;
// up主头像
string face = 2;
// up主昵称
string name = 3;
// up主uid
int64 uid = 4;
// 排序字段 从1开始
int64 pos = 5;
// 用户类型
UserItemType user_item_type = 6;
// 直播头像样式-日
UserItemStyle display_style_day = 7;
// 直播头像样式-夜
UserItemStyle display_style_night = 8;
// 直播埋点
int64 style_id = 9;
// 直播状态
LiveState live_state = 10;
// 分割线
bool separator = 11;
// 跳转
string uri = 12;
// UP主预约上报使用
bool is_recall = 13;
}
// 用户类型
enum UserItemType {
//
user_item_type_none = 0;
//
user_item_type_live = 1;
//
user_item_type_live_custom = 2;
//
user_item_type_normal = 3;
//
user_item_type_extend = 4;
}
// 直播头像样式
message UserItemStyle {
//
string rect_text = 1;
//
string rect_text_color = 2;
//
string rect_icon = 3;
//
string rect_bg_color = 4;
//
string outer_animation = 5;
}
// 视频页-我的追番
message CardVideoFollowList {
// 查看全部(跳转链接)
string view_all_link = 1;
// 追番列表
repeated FollowListItem list = 2;
}
// 视频页-我的追番-番剧信息
message FollowListItem {
// season_id
int64 season_id = 1;
// 标题
string title = 2;
// 封面图
string cover = 3;
// 跳转链接
string url = 4;
// new_ep
NewEP new_ep = 5;
// 子标题
string sub_title = 6;
// 卡片位次
int64 pos = 7;
}
// 最新ep
message NewEP {
// 最新话epid
int32 id = 1;
// 更新至XX话
string index_show = 2;
// 更新剧集的封面
string cover = 3;
}
// 扩展字段,用于动态部分操作使用
message Extend {
// 动态id
string dyn_id_str = 1;
// 业务方id
string business_id = 2;
// 源动态id
string orig_dyn_id_str = 3;
// 转发卡:用户名
string orig_name = 4;
// 转发卡:图片url
string orig_img_url = 5;
// 转发卡:文字内容
repeated Description orig_desc = 6;
// 填充文字内容
repeated Description desc = 7;
// 被转发的源动态类型
DynamicType orig_dyn_type = 8;
// 分享到站外展示类型
string share_type = 9;
// 分享的场景
string share_scene = 10;
// 是否快速转发
bool is_fast_share = 11;
// r_type 分享和转发
int32 r_type = 12;
// 数据源的动态类型
int64 dyn_type = 13;
// 用户id
int64 uid = 14;
// 卡片跳转
string card_url = 15;
// 透传字段
google.protobuf.Any source_content = 16;
// 转发卡:用户头像
string orig_face = 17;
// 评论跳转
ExtendReply reply = 18;
}
// 评论扩展
message ExtendReply {
// 基础跳转地址
string uri = 1;
// 参数部分
repeated ExtendReplyParam params = 2;
}
// 评论扩展参数部分
message ExtendReplyParam {
// 参数名
string key = 1;
// 参数值
string value = 2;
}
// 动态模块类型
enum DynModuleType {
// 占位
module_none = 0;
// 发布人模块
module_author = 1;
// 争议小黄条
module_dispute = 2;
// 描述文案
module_desc = 3;
// 动态卡片
module_dynamic = 4;
// 转发模块
module_forward = 5;
// 点赞用户(废弃)
module_likeUser = 6;
// 小卡模块
module_extend = 7;
// 附加卡
module_additional = 8;
// 计数信息
module_stat = 9;
// 折叠
module_fold = 10;
// 评论外露(废弃)
module_comment = 11;
// 外露交互模块(点赞、评论)
module_interaction = 12;
// 转发卡的发布人模块
module_author_forward = 13;
// 广告卡模块
module_ad = 14;
// 通栏模块
module_banner = 15;
// 获取物料失败模块
module_item_null = 16;
// 分享组件
module_share_info = 17;
// 相关推荐模块
module_recommend = 18;
// 转发卡计数信息
module_stat_forward = 19;
// 顶部模块
module_top = 20;
// 底部模块
module_bottom = 21;
}
// 动态列表-用户模块-转发模板
message ModuleAuthorForward {
// 展示标题
repeated ModuleAuthorForwardTitle title = 1;
// 源卡片跳转链接
string url = 2;
// 用户uid
int64 uid = 3;
// 时间标签
string ptime_label_text = 4;
// 是否展示关注
bool show_follow = 5;
// 源up主头像
string face_url = 6;
// 双向关系
Relation relation = 7;
// 右侧操作区域 - 三点样式
repeated ThreePointItem tp_list = 8;
}
// 动态列表-用户模块-转发模板-title部分
message ModuleAuthorForwardTitle {
// 文案
string text = 1;
// 跳转链接
string url = 2;
}
// 动态列表-用户模块-广告卡
message ModuleAd {
// 广告透传信息
google.protobuf.Any source_content = 1;
// 用户模块
ModuleAuthor module_author = 2;
}
// 动态列表-通栏
message ModuleBanner {
// 模块标题
string title = 1;
// 卡片类型
ModuleBannerType type = 2;
// 卡片
oneof item{
ModuleBannerUser user = 3;
}
// 不感兴趣文案
string dislike_text = 4;
// 不感兴趣图标
string dislike_icon = 5;
}
// 动态模块-投票
message AdditionVote2 {
// 投票类型
AdditionVoteType addition_vote_type = 1;
// 投票ID
int64 vote_id = 2;
// 标题
string title = 3;
// 已过期: xxx人参与· 投票已过期。button 展示去查看
// 未过期: xxx人参与· 剩xx天xx时xx分。button展示去投票
string label = 4;
// 剩余时间
int64 deadline = 5;
// 生效文案
string open_text = 6;
// 过期文案
string close_text = 7;
// 已投票
string voted_text = 8;
// 投票状态
AdditionVoteState state = 9;
// 投票信息
oneof item {
//
AdditionVoteWord addition_vote_word = 10;
//
AdditionVotePic addition_vote_pic = 11;
//
AdditionVoteDefaule addition_vote_defaule = 12;
}
// 业务类型
// 0:动态投票 1:话题h5组件
int32 biz_type = 13;
// 投票总人数
int64 total = 14;
// 附加卡类型
string card_type = 15;
// 异常提示
string tips = 16;
// 跳转地址
string uri = 17;
// 是否投票
bool is_voted = 18;
// 投票最多多选个数,单选为1
int32 choice_cnt = 19;
// 是否默认选中分享到动态
bool defaule_select_share = 20;
}
// 投票类型
enum AdditionVoteType {
//
addition_vote_type_none = 0;
//
addition_vote_type_word = 1;
//
addition_vote_type_pic = 2;
//
addition_vote_type_default = 3;
}
// 外露文字类型
message AdditionVoteWord {
// 外露文字投票详情
repeated AdditionVoteWordItem item = 1;
}
// 外露文字投票详情
message AdditionVoteWordItem {
// 选项索引,从1开始
int32 opt_idx = 1;
// 文案
string title = 2;
// 选中状态
bool is_vote = 3;
// 人数
int32 total = 4;
// 占比
double persent = 5;
// 是否投票人数最多的选项
bool is_max_option = 6;
}
// 外露图片类型
message AdditionVotePic {
// 图片投票详情
repeated AdditionVotePicItem item = 1;
}
// 图片投票详情
message AdditionVotePicItem {
// 选项索引,从1开始
int32 opt_idx = 1;
// 图片
string cover = 2;
// 选中状态
bool is_vote = 3;
// 人数
int32 total = 4;
// 占比
double persent = 5;
// 标题文案
string title = 6;
// 是否投票人数最多的选项
bool is_max_option = 7;
}
// 外露投票
message AdditionVoteDefaule {
// 图片 多张
repeated string cover = 1;
}
// 投票状态
enum AdditionVoteState {
//
addition_vote_state_none = 0;
//
addition_vote_state_open = 1;
//
addition_vote_state_close = 2;
}
// 动态列表-通栏类型
enum ModuleBannerType {
//
module_banner_type_none = 0;
//
module_banner_type_user = 1;
}
// 获取物料失败模块
message ModuleItemNull {
// 图标
string icon = 1;
// 文案
string text = 2;
}
// 动态通栏-用户
message ModuleBannerUser {
// 卡片列表
repeated ModuleBannerUserItem list = 1;
}
// 动态通栏-推荐用户卡
message ModuleBannerUserItem {
// up主头像
string face = 1;
// up主昵称
string name = 2;
// up主uid
int64 uid = 3;
// 直播状态
LiveState live_state = 4;
// 认证信息
OfficialVerify official = 5;
// 大会员信息
VipInfo vip = 6;
// 标签信息
string label = 7;
// 按钮
AdditionalButton button = 8;
// 跳转地址
string uri = 9;
}
// 动态-点赞用户模块
message ModuleLikeUser {
// 点赞用户
repeated LikeUser like_users = 1;
// 文案
string display_text = 2;
}
// 点赞用户
message LikeUser {
// 用户mid
int64 uid = 1;
// 用户昵称
string uname = 2;
// 点击跳转链接
string uri = 3;
}
// 点赞拓展信息
message LikeInfo {
// 点赞动画
LikeAnimation animation = 1;
// 是否点赞
bool is_like = 2;
}
// 点赞动画
message LikeAnimation {
// 开始动画
string begin = 1;
// 过程动画
string proc = 2;
// 结束动画
string end = 3;
// id
int64 like_icon_id = 4;
}
// 右侧操作区域样式枚举
enum ModuleAuthorBadgeType {
// 占位
module_author_badge_type_none = 0;
// 三点
module_author_badge_type_threePoint = 1;
// 按钮类型
module_author_badge_type_button = 2;
// 提权
module_author_badge_type_weight = 3;
}
// 三点Item
message ThreePointItem {
//类型
ThreePointType type = 1;
oneof item {
// 默认结构
ThreePointDefault default = 2;
// 自动播放
ThreePointAutoPlay auto_player = 3;
// 分享
ThreePointShare share = 4;
// 关注
ThreePointAttention attention = 5;
// 稍后在看
ThreePointWait wait = 6;
// 不感兴趣
ThreePointDislike dislike = 7;
// 收藏
ThreePointFavorite favorite = 8;
// 置顶
ThreePointTop top = 9;
// 评论
ThreePointComment comment = 10;
}
}
// 三点类型
enum ThreePointType {
// 占位
tp_none = 0;
// 使用此背景
background = 1;
// 自动播放
auto_play = 2;
// 分享
share = 3;
// 稍后再播
wait = 4;
// 关注
attention = 5;
// 举报
report = 6;
// 删除
delete = 7;
// 不感兴趣
dislike = 8;
// 收藏
favorite = 9;
// 置顶
top = 10;
// 评论
comment = 11;
}
// 动态列表渲染部分-用户模块-按钮
message ModuleAuthorBadgeButton {
// 图标
string icon = 1;
// 文案
string title = 2;
// 状态
int32 state = 3;
// 物料ID
int64 id = 4;
}
// 三点-默认结构(使用此背景、举报、删除)
message ThreePointDefault {
// icon
string icon = 1;
// 标题
string title = 2;
// 跳转链接
string uri = 3;
// id
string id = 4;
}
// 三点-自动播放 旧版不维护
message ThreePointAutoPlay {
// open icon
string open_icon = 1;
// 开启时显示文案
string open_text = 2;
// close icon
string close_icon = 3;
// 关闭时显示文案
string close_text = 4;
// 开启时显示文案v2
string open_text_v2 = 5;
// 关闭时显示文案v2
string close_text_v2 = 6;
// 仅wifi/免流 icon
string only_icon = 7;
// 仅wifi/免流 文案
string only_text = 8;
// open icon v2
string open_icon_v2 = 9;
// close icon v2
string close_icon_v2 = 10;
}
// 三点-分享
message ThreePointShare {
// icon
string icon = 1;
// 标题
string title = 2;
// 分享渠道
repeated ThreePointShareChannel channel = 3;
// 分享渠道名
string channel_name = 4;
// 预约卡分享图信息,仅分享有预约信息的动态时存在
ShareReserve reserve = 5;
}
// 三点-分享渠道
message ThreePointShareChannel {
// icon
string icon = 1;
// 名称
string title = 2;
}
// 三点-关注
message ThreePointAttention {
// attention icon
string attention_icon = 1;
// 关注时显示的文案
string attention_text = 2;
// not attention icon
string not_attention_icon = 3;
// 未关注时显示的文案
string not_attention_text = 4;
// 当前关注状态
ThreePointAttentionStatus status = 5;
}
// 枚举-三点关注状态
enum ThreePointAttentionStatus {
tp_not_attention = 0;
tp_attention = 1;
}
// 三点-稍后在看
message ThreePointWait {
// addition icon
string addition_icon = 1;
// 已添加时的文案
string addition_text = 2;
// no addition icon
string no_addition_icon = 3;
// 未添加时的文案
string no_addition_text = 4;
// avid
int64 id = 5;
}
// 三点-不感兴趣
message ThreePointDislike {
// icon
string icon = 1;
// 标题
string title = 2;
}
// 三点-收藏
message ThreePointFavorite {
// icon
string icon = 1;
// 标题
string title = 2;
// 物料ID
int64 id = 3;
// 是否订阅
bool is_favourite = 4;
// 取消收藏图标
string cancel_icon = 5;
// 取消收藏文案
string cancel_title = 6;
}
// 三点-置顶
message ThreePointTop {
// icon
string icon = 1;
// 标题
string title = 2;
// 状态
TopType type = 3;
}
// 状态
enum TopType {
// 默认 置顶
top_none = 0;
// 取消置顶
top_cancel = 1;
}
// 三点-评论
message ThreePointComment {
// 精选评论区功能
CommentDetail up_selection = 1;
// up关闭评论区功能
CommentDetail up_close = 2;
// icon
string icon = 3;
// 标题
string title = 4;
}
// 精选评论区
message CommentDetail {
// 该功能能不能用
bool can_modify = 1;
// up关闭评论区功能 1允许关闭 0允许开放
// 精选评论区功能 1允许停止评论精选 0允许评论精选
int64 status = 2;
}
// 提权样式
message Weight {
// 提权展示标题
string title = 1;
// 下拉框内容
repeated WeightItem items = 2;
// icon
string icon = 3;
}
// 提权样式
message WeightItem {
// 类型
WeightType type = 1;
oneof item {
// 热门默认跳转按钮
WeightButton button = 2;
// 提权不感兴趣
WeightDislike dislike = 3;
}
}
// WeightType 枚举-提权类型
enum WeightType {
// 默认 占位
weight_none = 0;
// 不感兴趣
weight_dislike = 1;
// 跳链
weight_jump = 2;
}
// 提权不感兴趣
message WeightDislike {
// 负反馈业务类型 作为客户端调用负反馈接口的参数
string feed_back_type = 1;
// 展示文案
string title = 2;
}
// 热门默认跳转按钮
message WeightButton {
string jump_url = 1;
// 展示文案
string title = 2;
}
// 评论外露模块
message ModuleComment {
// 评论外露展示项
repeated CmtShowItem cmtShowItem = 1;
}
// 评论外露展示项
message CmtShowItem {
// 用户mid
int64 uid = 1;
// 用户昵称
string uname = 2;
// 点击跳转链接
string uri = 3;
// 评论内容
string comment = 4;
}
// 动态通用附加卡-follow/取消follow-请求
message DynAdditionCommonFollowReq {
//
AdditionalButtonStatus status = 1;
//
string dyn_id = 2;
//
string card_type = 3;
}
//
enum FollowType {
//
ft_not_follow = 0;
//
ft_follow = 1;
}
// 动态通用附加卡-follow/取消follow-响应
message DynAdditionCommonFollowReply {
//
AdditionalButtonStatus status = 1;
}
// 动态点赞-请求
message DynThumbReq {
// 用户uid
int64 uid = 1;
// 动态id
string dyn_id = 2;
// 动态类型(透传extend中的dyn_type)
int64 dyn_type = 3;
// 业务方资源id
string rid = 4;
// 点赞类型
ThumbType type = 5;
}
//
enum ThumbType {
//
cancel = 0;
//
thumb = 1;
}
// 动态发布生成临时卡-请求
message DynFakeCardReq {
//卡片内容json string
string content = 1;
}
// 动态发布生成临时卡-响应
message DynFakeCardReply {
// 动态卡片
DynamicItem item = 1;
}
// 关注推荐up主换一换-请求
message DynRcmdUpExchangeReq {
// 登录用户id
int64 uid = 1;
// 上一次不感兴趣的ts,单位:秒;该字段透传给搜索
int64 dislikeTs = 2;
// 需要与服务端确认或参照客户端现有参数
string from = 3;
}
// 关注推荐up主换一换-响应
message DynRcmdUpExchangeReply {
// 无关注推荐
Unfollow unfollow = 1;
}
// 最近访问-个人feed流列表-请求
message DynAllPersonalReq {
// 被访问者的 UID
int64 host_uid = 1;
// 偏移量 第一页可传空
string offset = 2;
// 标明下拉几次
int32 page = 3;
// 是否是预加载 默认是1;客户端预加载。1:是预加载,不更新已读进度,不会影响小红点;0:非预加载,更新已读进度
int32 is_preload = 4;
// 秒开参数 新版本废弃,统一使用player_args
PlayurlParam playurl_param = 5;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 6;
// 服务端生成的透传上报字段
string footprint = 7;
// 来源
string from = 8;
// 秒开用
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
}
// 最近访问-个人feed流列表-返回
message DynAllPersonalReply {
// 动态列表
repeated DynamicItem list = 1;
// 偏移量
string offset = 2;
// 是否还有更多数据
bool has_more = 3;
// 已读进度
string read_offset = 4;
// 关注状态
Relation relation = 5;
// 顶部预约卡
TopAdditionUP addition_up = 6;
}
// 顶部预约卡
message TopAdditionUP {
// 预约卡
repeated AdditionUP up = 1;
// 折叠数量,大于多少个进行折叠
int32 has_fold = 2;
}
// 最近访问-标记已读-请求
message DynAllUpdOffsetReq {
// 被访问者的UID
int64 host_uid = 1;
// 用户已读进度
string read_offset = 2;
// 服务端生成的透传上报字段
string footprint = 3;
}
// 投票操作-请求
message DynVoteReq {
// 投票ID
int64 vote_id = 1;
// 选项索引数组
repeated int64 votes = 2;
// 状态
VoteStatus status = 3;
// 动态ID
string dynamic_id = 4;
// 是否分享
bool share = 5;
}
// 状态
enum VoteStatus {
// 正常
normal = 0;
// 匿名
anonymous = 1;
}
// 投票操作-响应
message DynVoteReply {
// 投票详情
AdditionVote2 item = 1;
// 投票操作返回状态
string toast = 2;
}
// 关注关系
message Relation {
// 关注状态
RelationStatus status = 1;
// 关注
int32 is_follow = 2;
// 被关注
int32 is_followed = 3;
// 文案
string title = 4;
}
// 关注关系 枚举
enum RelationStatus {
// 1-未关注 2-关注 3-被关注 4-互相关注 5-特别关注
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 MixUpListLiveItem {
// 直播状态
// 0:未直播 1:直播中
bool status = 1;
// 房间号
int64 room_id = 2;
// 跳转地址
string uri = 3;
}
// 查看更多-列表单条数据
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;
}
// 查看更多-请求
message DynMixUpListViewMoreReq {
// 排序策略
// 1:推荐排序 2:最常访问 3:最近关注,其他值为默认排序
int32 sort_type = 1;
}
// 排序类型
message SortType {
// 排序策略
// 1:推荐排序 2:最常访问 3:最近关注
int32 sort_type = 1;
// 排序策略名称
string sort_type_name = 2;
}
// 查看更多-列表-响应
message DynMixUpListViewMoreReply {
//
repeated MixUpListItem items = 1;
//
string search_default_text = 2;
// 排序类型列表
repeated SortType sort_types = 3;
// 是否展示更多的排序策略
bool show_more_sort_types = 4;
// 默认排序策略
int32 default_sort_type = 5;
}
// 轻浏览-请求
message DynLightReq {
// 透传 history_offset
string history_offset = 1;
// 向下翻页数
int32 page = 2;
// 来源
string from = 3;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 5;
}
// 轻浏览-响应
message DynLightReply {
// 卡片列表
DynamicList dynamic_list = 1;
}
// 动态详情页-请求
message DynDetailReq {
// up主uid
int64 uid = 1;
// 动态ID
string dynamic_id = 2;
// 动态类型
int64 dyn_type = 3;
// 业务方资源id
int64 rid = 4;
// 广告参数
AdParam ad_param = 5;
// From来源
string from = 6;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 7;
// 分享id
string share_id = 8;
// 分享类型
// 1:文字 2:图片 3:链接 4:视频 5:音频
int32 share_mode = 9;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 10;
// pattern
string pattern = 11;
}
// 动态详情页-响应
message DynDetailReply {
// 动态详情
DynamicItem item = 1;
}
// 点赞列表-请求
message LikeListReq {
// 动态ID
string dynamic_id = 1;
// 动态类型
int64 dyn_type = 2;
// 业务方资源id
int64 rid = 3;
//上一页最后一个uid
int64 uid_offset = 4;
// 下拉页数
int32 page = 5;
}
// 点赞列表-响应
message LikeListReply {
// 用户模块列表
repeated ModuleAuthor list = 1;
// 是否还有更多数据
bool has_more = 2;
// 点赞总数
int64 total_count = 3;
}
// 转发列表-请求
message RepostListReq {
// 动态ID
string dynamic_id = 1;
// 动态类型
int64 dyn_type = 2;
// 业务方资源id
int64 rid = 3;
// 偏移,使用上一页回包中的offset字段;第一页不传。
string offset = 4;
// 来源
string from = 5;
// 评论类型
RepostType repost_type = 6;
}
// 转发列表-响应
message RepostListRsp {
// 列表
repeated DynamicItem list = 1;
// 偏移
string offset = 2;
// 是否还有更多
bool has_more = 3;
// 转发总数
int64 total_count = 4;
// 评论类型
RepostType repost_type = 5;
}
// 评论类型
enum RepostType {
// 热门评论
repost_hot = 0;
// 普通评论
repost_general = 1;
}
// 分享模块
message ModuleShareInfo {
// 展示标题
string title = 1;
// 分享组件列表
repeated ShareChannel share_channels = 2;
// share_origin
string share_origin = 3;
// 业务id
string oid = 4;
// sid
string sid = 5;
}
// 分享渠道组件
message ShareChannel {
// 分享名称
string name = 1;
// 分享按钮图片
string image = 2;
// 分享渠道
string channel = 3;
// 预约卡分享图信息,仅分享有预约信息的动态时存在
ShareReserve reserve = 4;
}
// 预约卡分享图信息
message ShareReserve {
// 展示标题
string title = 1;
// 描述(时间+类型)
string desc = 2;
// 二维码附带icon
string qr_code_icon = 3;
// 二维码附带文本
string qr_code_text = 4;
// 二维码url
string qr_code_url = 5;
}
// 相关推荐模块
message ModuleRecommend {
// 模块标题
string module_title = 1;
// 图片
string image = 2;
// 标签
string tag = 3;
// 标题
string title = 4;
// 跳转链接
string jump_url = 5;
// 序列化的广告信息
repeated google.protobuf.Any ad = 6;
}
// 空间页动态-请求
message DynSpaceReq {
// 被访问者,也就是空间主人的uid
int64 host_uid = 1;
// 动态偏移history_offset
string history_offset = 2;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 4;
// 向下翻页数,默认从1开始
int64 page = 5;
// 来源,空间页:space,直播tab:live
string from = 6;
}
// 空间页动态-响应
message DynSpaceRsp {
// 卡片列表
repeated DynamicItem list = 1;
// 历史偏移
string history_offset = 2;
// 是否还有更多数据
bool has_more = 3;
}
// 顶部模块
message ModuleTop {
// 三点模块
repeated ThreePointItem tp_list = 1;
}
// 底部模块
message ModuleButtom {
// 计数模块
ModuleStat module_stat = 1;
}
// 推荐页-请求
message DynRcmdReq {
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 1;
// 客户端时区 兼容UTC-14和Etc/GMT+12,时区区间[-12,14] 东八区为8
int32 local_time = 2;
}
// 推荐页-响应
message DynRcmdReply {
// 推荐页返回参数
DynRegionRcmd region_rcmd = 1;
}
// 推荐页返回参数
message DynRegionRcmd {
// 分区推荐项目列表
repeated DynRegionRcmdItem items = 1;
// 分区聚类推荐选项
RcmdOption opts = 2;
}
// 分区聚类推荐选项
message RcmdOption{
// 视频是否展示标题
bool show_title = 1;
}
// 分区推荐项目
message DynRegionRcmdItem {
// 分区id
int64 rid = 1;
// 标题
string title = 2;
// 推荐模块
repeated ModuleRcmd items = 3;
}
// 推荐模块
message ModuleRcmd {
// 用户头像
RcmdAuthor author = 1;
// 推荐卡片列表
repeated RcmdItem items = 2;
// 透传到客户端的埋点字段
string server_info = 3;
}
// 推荐UP主用户模块
message RcmdAuthor {
// 用户详情
UserInfo author = 1;
// 描述:粉丝数、推荐理由
string desc = 2;
// 关注状态
Relation relation = 3;
}
// 推荐卡片列表
message RcmdItem {
// 卡片类型
RcmdType type = 1;
// 卡片列表
oneof rcmd_item {
//
RcmdArchive rcmd_archive = 2;
}
}
// 推荐模块数据类型
enum RcmdType {
// 稿件
rcmd_archive = 0;
}
//
message RcmdArchive {
// 标题
string title = 1;
// 封面图
string cover = 2;
// 视频封面展示项 1
CoverIcon cover_left_icon_1 = 3;
// 视频封面展示项 1
string cover_left_text_1 = 4;
// 秒开地址
string uri = 5;
// 是否PGC
bool is_pgc = 6;
// aid
int64 aid = 7;
}
//
enum CoverIcon {
// 占位 啥都不展示
cover_icon_none = 0;
// 播放icon
cover_icon_play = 1;
}```