syntax = "proto3"; package bilibili.app.interfaces.v1; import "bilibili/app/archive/middleware/v1/preload.proto"; // 历史记录 service History { // 获取历史记录tab rpc HistoryTab (HistoryTabReq) returns (HistoryTabReply); // 获取历史记录列表(旧版) rpc Cursor (CursorReq) returns (CursorReply); // 获取历史记录列表 rpc CursorV2 (CursorV2Req) returns (CursorV2Reply); // 删除历史记录 rpc Delete (DeleteReq) returns (NoReply); // 搜索历史记录 rpc Search (SearchReq) returns (SearchReply); // 清空历史记录 rpc Clear (ClearReq) returns (NoReply); // 获取最新的历史记录 rpc LatestHistory (LatestHistoryReq) returns (LatestHistoryReply); } // 专栏卡片 message CardArticle { // 封面url repeated string covers = 1; // UP主昵称 string name = 2; // UP主mid int64 mid = 3; // 是否展示关注按钮 bool displayAttention = 4; // 角标 string badge = 5; // 关系信息 Relation relation = 6; } // 课程卡片 message CardCheese { // 封面url string cover = 1; // 观看进度 int64 progress = 2; // 总计时长 int64 duration = 3; // 单集标题 string subtitle = 4; } // 直播卡片 message CardLive { // 封面url string cover = 1; // 主播昵称 string name = 2; // 主播mid int64 mid = 3; // 直播分区名 string tag = 4; // 直播状态 int32 ststus = 5; // 是否展示关注按钮 bool display_attention = 6; // 关系信息 Relation relation = 7; } // pgc稿件卡片 message CardOGV { // 封面url string cover = 1; // 观看进度 int64 progress = 2; // 总计时长 int64 duration = 3; // 单集标题 string subtitle = 4; } // ugc稿件卡片 message CardUGC { // 封面url string cover = 1; // 观看进度 int64 progress = 2; // 视频长度 int64 duration = 3; // UP主昵称 string name = 4; // UP主mid int64 mid = 5; // 是否展示关注按钮 bool display_attention = 6; // 历史观看视频cid int64 cid = 7; // 历史观看视频分P int32 page = 8; // 历史观看视频分P的标题 string subtitle = 9; // 关系信息 Relation relation = 10; // 稿件bvid string bvid = 11; // 总分P数 int64 videos = 12; // 短链接 string short_link = 13; // 分享副标题 string share_subtitle = 14; // 播放数 int64 view = 15; // int64 state = 16; } // 清空历史记录-请求 message ClearReq { // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 1; } // 游标信息 message Cursor { // 本页最大值游标值 int64 max = 1; // 本页最大值游标类型 int32 maxTp = 2; } // 历史记录卡片信息 message CursorItem { // 主体数据 oneof card_item { // ugc稿件 CardUGC card_ugc = 1; // pgc稿件 CardOGV card_ogv = 2; // 专栏 CardArticle card_article = 3; // 直播 CardLive card_live = 4; // 课程 CardCheese card_cheese = 5; } // 标题 string title = 6; // 目标uri/url string uri = 7; // 观看时间 int64 viewAt = 8; // 历史记录id int64 kid = 9; // 业务id int64 oid = 10; // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 11; // 业务类型代码 int32 tp = 12; // 设备标识 DeviceType dt = 13; // 是否有分享按钮 bool has_share = 14; } // 获取历史记录列表(旧版)-响应 message CursorReply { // 卡片内容 repeated CursorItem items = 1; // 顶部tab repeated CursorTab tab = 2; // 游标信息 Cursor cursor = 3; // 是否未拉取完 bool hasMore = 4; } // 获取历史记录列表(旧版)-请求 message CursorReq { // 游标信息 Cursor cursor = 1; // 业务类型 // all:全部 archive:视频 live:直播 article:专栏 string business = 2; // 秒开参数(旧版) PlayerPreloadParams player_preload = 3; // 秒开参数 bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4; } // 业务分类表 message CursorTab { // 业务类型 string business = 1; // 名称 string name = 2; // 路由uri string router = 3; // tab定位 bool focus = 4; } // 获取历史记录列表-响应 message CursorV2Reply { // 卡片内容 repeated CursorItem items = 1; // 游标信息 Cursor cursor = 2; // 是否未拉取完 bool hasMore = 3; // string empty_link = 4; } // 获取历史记录列表-请求 message CursorV2Req { // 游标信息 Cursor cursor = 1; // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 2; // 秒开参数(旧版) PlayerPreloadParams player_preload = 3; // 秒开参数 bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4; // 是否选择本机的播放历史 bool is_local = 5; } // 设备标识代码 enum DT { Unknown = 0; // 未知 Phone = 1; // 手机端 Pad = 2; // ipad端 PC = 3; // web端 TV = 4; // TV端 Car = 5; // 车机端 Iot = 6; // 物联设备 AndPad = 7; // apad端 } // 删除历史记录-请求 message DeleteReq { // 历史记录信息 HisInfo his_info = 1; } // 设备类型 message DeviceType { // 设备标识代码 DT type = 1; // 图标url string icon = 2; } // 历史记录信息 message HisInfo { // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 1; // 历史记录id int64 kid = 2; } // 搜索历史记录来源 enum HistorySource { history_VALUE = 0; // 主站历史记录页 shopping_VALUE = 1; // 会员购浏览记录 } // 获取历史记录tab-响应 message HistoryTabReply { // tab列表 repeated CursorTab tab = 1; } // 获取历史记录tab-请求 message HistoryTabReq { // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 1; // 查询请求来源 HistorySource source = 2; // 搜索关键词 string keyword = 3; } // 获取最新的历史记录-响应 message LatestHistoryReply { // 卡片内容 CursorItem items = 1; // 场景 string scene = 2; // 弹窗停留时间 int64 rtime = 3; // 分组的标志(客户端埋点上报) string flag = 4; } // 获取最新的历史记录-请求 message LatestHistoryReq { // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 1; // 秒开参数 PlayerPreloadParams player_preload = 2; } // 空响应 message NoReply { } // 页面信息 message Page { // 当前页码 int64 pn = 1; // 总计条目数 int64 total = 2; } // 秒开参数 message PlayerPreloadParams { //清晰度 int64 qn = 1; // 流版本 int64 fnver = 2; // 流类型 int64 fnval = 3; // 是否强制域名 int64 forceHost = 4; // 是否4K int64 fourk = 5; } // 关系信息 message Relation { // 关系状态 // 1:未关注 2:已关注 3:被关注 4:互关 int32 status = 1; // 用户关注UP主 int32 is_follow = 2; // UP主关注用户 int32 is_followed = 3; } // 搜索历史记录-响应 message SearchReply { // 卡片内容 repeated CursorItem items = 1; // 是否未拉取完 bool hasMore = 2; // 页面信息 Page page = 3; } // 搜索历史记录-请求 message SearchReq { // 关键词 string keyword = 1; // 页码 int64 pn = 2; // 业务类型 // archive:视频 live:直播 article:专栏 goods:商品 show:展演 string business = 3; }