836 lines
14 KiB
Protocol Buffer
836 lines
14 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package bilibili.app.viewunite.v1;
|
|
|
|
import "bilibili/app/archive/middleware/v1/preload.proto";
|
|
import "bilibili/app/viewunite/common.proto";
|
|
import "bilibili/pagination/pagination.proto";
|
|
import "google/protobuf/any.proto";
|
|
|
|
// 统一视频信息接口 (7.41.0+)
|
|
service View {
|
|
//
|
|
rpc ArcRefresh(ArcRefreshReq) returns (ArcRefreshReply);
|
|
// 视频详情页下方推荐
|
|
rpc RelatesFeed(RelatesFeedReq) returns (RelatesFeedReply);
|
|
//
|
|
rpc View(ViewReq) returns (ViewReply);
|
|
//
|
|
rpc ViewProgress(ViewProgressReq) returns (ViewProgressReply);
|
|
}
|
|
|
|
//
|
|
message ActivityResource {
|
|
//
|
|
string dark_text_color = 1;
|
|
//
|
|
string divider_color = 2;
|
|
//
|
|
string bg_color = 3;
|
|
//
|
|
string selected_bg_color = 4;
|
|
//
|
|
string text_color = 5;
|
|
//
|
|
string light_text_color = 6;
|
|
}
|
|
|
|
// 业务信息
|
|
message Arc {
|
|
//
|
|
int64 aid = 1;
|
|
//
|
|
int64 cid = 2;
|
|
//
|
|
int64 duration = 3;
|
|
//
|
|
bilibili.app.viewunite.common.Stat stat = 4;
|
|
//
|
|
string bvid = 5;
|
|
//
|
|
int32 copyright = 6;
|
|
//
|
|
Rights right = 7;
|
|
//
|
|
string cover = 8;
|
|
//
|
|
int64 type_id = 9;
|
|
//
|
|
string title = 10;
|
|
}
|
|
|
|
//
|
|
message ArcRefreshReply {
|
|
//
|
|
bilibili.app.viewunite.common.Stat stat = 1;
|
|
//
|
|
SimpleReqUser req_user = 2;
|
|
//
|
|
SimpleArc arc = 3;
|
|
//
|
|
Online online = 4;
|
|
//
|
|
LikeConfig like_config = 5;
|
|
}
|
|
|
|
//
|
|
message ArcRefreshReq {
|
|
//
|
|
int64 aid = 1;
|
|
//
|
|
string bvid = 2;
|
|
}
|
|
|
|
//
|
|
message AttentionCard {
|
|
//
|
|
repeated ShowTime show_time = 1;
|
|
}
|
|
|
|
//
|
|
message BizFollowVideoParam {
|
|
//
|
|
int64 season_id = 1;
|
|
}
|
|
|
|
//
|
|
message BizJumpLinkParam {
|
|
//
|
|
string url = 1;
|
|
}
|
|
|
|
//
|
|
message BizReserveActivityParam {
|
|
//
|
|
int64 activity_id = 1;
|
|
//
|
|
string from = 2;
|
|
//
|
|
string type = 3;
|
|
//
|
|
int64 oid = 4;
|
|
//
|
|
int64 reserve_id = 5;
|
|
}
|
|
|
|
//
|
|
message BizReserveGameParam {
|
|
//
|
|
int64 game_id = 1;
|
|
}
|
|
|
|
enum BizType {
|
|
//
|
|
BizTypeNone = 0;
|
|
//
|
|
BizTypeFollowVideo = 1;
|
|
//
|
|
BizTypeReserveActivity = 2;
|
|
//
|
|
BizTypeJumpLink = 3;
|
|
//
|
|
BizTypeFavSeason = 4;
|
|
//
|
|
BizTypeReserveGame = 5;
|
|
}
|
|
|
|
//
|
|
message Button {
|
|
//
|
|
string title = 1;
|
|
//
|
|
string uri = 2;
|
|
//
|
|
string icon = 3;
|
|
//
|
|
JumpShowType jump_show_type = 4;
|
|
}
|
|
|
|
//
|
|
message ChargingPlus {
|
|
//
|
|
bool pass = 1;
|
|
//
|
|
repeated PlayToast play_toast = 2;
|
|
}
|
|
|
|
//
|
|
message Chronos {
|
|
//
|
|
string md5 = 1;
|
|
//
|
|
string file = 2;
|
|
//
|
|
string sign = 3;
|
|
}
|
|
|
|
//
|
|
message ChronosParam {
|
|
//
|
|
string engine_version = 1;
|
|
//
|
|
string message_protocol = 2;
|
|
//
|
|
string service_key = 3;
|
|
}
|
|
|
|
// 推广信息
|
|
message CM {
|
|
//
|
|
google.protobuf.Any cm_under_player = 1;
|
|
//
|
|
google.protobuf.Any ads_control = 2;
|
|
//
|
|
repeated google.protobuf.Any source_content = 3;
|
|
}
|
|
|
|
//
|
|
message CommandDm {
|
|
//
|
|
int64 id = 1;
|
|
//
|
|
int64 oid = 2;
|
|
//
|
|
int64 mid = 3;
|
|
//
|
|
string command = 4;
|
|
//
|
|
string content = 5;
|
|
//
|
|
int32 progress = 6;
|
|
//
|
|
string ctime = 7;
|
|
//
|
|
string mtime = 8;
|
|
//
|
|
string extra = 9;
|
|
//
|
|
string idstr = 10;
|
|
}
|
|
|
|
// 播放器配置
|
|
message Config {
|
|
//
|
|
Online online = 1;
|
|
//
|
|
PlayerIcon player_icon = 2;
|
|
//
|
|
StoryEntrance story_entrance = 3;
|
|
}
|
|
|
|
// 视频播放时弹出的卡片
|
|
message ContractCard {
|
|
// 在第几秒弹出
|
|
float display_progress = 1;
|
|
//
|
|
int64 display_accuracy = 2;
|
|
// 弹出后停留的时间
|
|
int64 display_duration = 3;
|
|
// 展示方式, 暂未知对应关系
|
|
int32 show_mode = 4;
|
|
// 页面类型, 暂未知对应关系
|
|
int32 page_type = 5;
|
|
//
|
|
UpperInfos upper = 6;
|
|
//
|
|
int32 is_follow_display = 7;
|
|
// 卡片的文字说明信息
|
|
ContractText text = 8;
|
|
//
|
|
int64 follow_display_end_duration = 9;
|
|
//
|
|
int32 is_play_display = 10;
|
|
//
|
|
int32 is_interact_display = 11;
|
|
}
|
|
|
|
// 视频播放时弹出的卡片的文字说明信息
|
|
message ContractText {
|
|
//
|
|
string title = 1;
|
|
//
|
|
string subtitle = 2;
|
|
//
|
|
string inline_title = 3;
|
|
}
|
|
|
|
//
|
|
message Control {
|
|
//
|
|
bool limit = 1;
|
|
}
|
|
|
|
//
|
|
message DmResource {
|
|
//
|
|
repeated CommandDm command_dms = 1;
|
|
//
|
|
AttentionCard attention = 2;
|
|
//
|
|
repeated OperationCard cards = 3;
|
|
}
|
|
|
|
enum ECode {
|
|
//
|
|
CODE_DEFAULT = 0;
|
|
//
|
|
CODE_404 = 1;
|
|
// 青少年限制
|
|
CODE_TEENAGER = 78301;
|
|
}
|
|
|
|
//
|
|
message ECodeConfig {
|
|
//
|
|
string redirect_url = 1;
|
|
}
|
|
|
|
//
|
|
message IconData {
|
|
//
|
|
string meta_json = 1;
|
|
//
|
|
string sprits_img = 2;
|
|
}
|
|
|
|
// 视频介绍 Tab
|
|
message IntroductionTab {
|
|
//
|
|
string title = 1;
|
|
//
|
|
repeated bilibili.app.viewunite.common.Module modules = 2;
|
|
}
|
|
|
|
enum JumpShowType {
|
|
//
|
|
JST_DEFAULT = 0;
|
|
//
|
|
JST_FULLSCREEN = 1;
|
|
//
|
|
JST_HALFSCREEN = 2;
|
|
}
|
|
|
|
//
|
|
message LikeConfig {
|
|
bilibili.app.viewunite.common.UpLikeImg triple_like = 1;
|
|
//
|
|
string like_animation = 2;
|
|
}
|
|
|
|
// 素材详情
|
|
message Material {
|
|
//
|
|
string icon = 1;
|
|
//
|
|
string text = 2;
|
|
//
|
|
string url = 3;
|
|
//
|
|
MaterialBizType type = 4;
|
|
//
|
|
string param = 5;
|
|
//
|
|
string static_icon = 6;
|
|
//
|
|
string bg_color = 7;
|
|
//
|
|
string bg_pic = 8;
|
|
//
|
|
int32 jump_type = 9;
|
|
//
|
|
PageType page_type = 10;
|
|
//
|
|
bool need_login = 11;
|
|
}
|
|
|
|
// 素材类型
|
|
enum MaterialBizType {
|
|
//
|
|
NONE = 0;
|
|
//
|
|
ACTIVITY = 1;
|
|
//
|
|
BGM = 2;
|
|
//
|
|
EFFECT = 3;
|
|
//
|
|
SHOOT_SAME = 4;
|
|
//
|
|
SHOOT_TOGETHER = 5;
|
|
//
|
|
ACTIVITY_ICON = 6;
|
|
//
|
|
NEW_BGM = 7;
|
|
}
|
|
|
|
// 素材来源
|
|
enum MaterialSource {
|
|
//
|
|
DEFAULT = 0;
|
|
// 必剪素材
|
|
BIJIAN = 1;
|
|
}
|
|
|
|
//
|
|
message Online {
|
|
//
|
|
bool online_show = 1;
|
|
}
|
|
|
|
//
|
|
message OperationCard {
|
|
//
|
|
int64 id = 1;
|
|
//
|
|
int32 from = 2;
|
|
//
|
|
int32 to = 3;
|
|
//
|
|
bool status = 4;
|
|
//
|
|
BizType biz_type = 5;
|
|
//
|
|
OperationCardContent content = 6;
|
|
//
|
|
oneof param {
|
|
//
|
|
BizFollowVideoParam follow = 7;
|
|
//
|
|
BizReserveActivityParam reserve = 8;
|
|
//
|
|
BizJumpLinkParam jump = 9;
|
|
//
|
|
BizReserveGameParam game = 10;
|
|
}
|
|
}
|
|
|
|
//
|
|
message OperationCardContent {
|
|
//
|
|
string title = 1;
|
|
//
|
|
string subtitle = 2;
|
|
//
|
|
string icon = 3;
|
|
//
|
|
string button_title = 4;
|
|
//
|
|
string button_selected_title = 5;
|
|
//
|
|
bool show_selected = 6;
|
|
}
|
|
|
|
//
|
|
enum PageCategory {
|
|
//
|
|
COMMON_PAGE = 0;
|
|
//
|
|
ACTIVITY_PAGE = 1;
|
|
}
|
|
|
|
//
|
|
message PageControl {
|
|
Control toast_show = 1;
|
|
Control material_show = 2;
|
|
Control up_show = 3;
|
|
}
|
|
|
|
// 页面类型
|
|
enum PageType {
|
|
// H5页面(Webview)
|
|
H5 = 0;
|
|
// 原生页面(native)
|
|
NA = 1;
|
|
}
|
|
|
|
//
|
|
message PlayerIcon {
|
|
//
|
|
string url1 = 1;
|
|
//
|
|
string hash1 = 2;
|
|
//
|
|
string url2 = 3;
|
|
//
|
|
string hash2 = 4;
|
|
//
|
|
string drag_left_png = 5;
|
|
//
|
|
string middle_png = 6;
|
|
//
|
|
string drag_right_png = 7;
|
|
//
|
|
IconData drag_data = 8;
|
|
//
|
|
IconData nodrag_data = 9;
|
|
}
|
|
|
|
//
|
|
message PlayToast {
|
|
//
|
|
PlayToastEnum business = 1;
|
|
//
|
|
string icon_url = 2;
|
|
//
|
|
string text = 3;
|
|
}
|
|
|
|
enum PlayToastEnum {
|
|
//
|
|
PLAYTOAST_UNKNOWN = 0;
|
|
//
|
|
PLAYTOAST_CHARGINGPLUS = 1;
|
|
}
|
|
|
|
//
|
|
message PointMaterial {
|
|
//
|
|
string url = 1;
|
|
//
|
|
MaterialSource material_source = 2;
|
|
}
|
|
|
|
//
|
|
message Relate {
|
|
//
|
|
int64 device_type = 1;
|
|
//
|
|
bilibili.pagination.Pagination pagination = 2;
|
|
}
|
|
|
|
// 视频详情页下方推荐 Reply
|
|
message RelatesFeedReply {
|
|
//
|
|
repeated bilibili.app.viewunite.common.RelateCard relates = 1;
|
|
//
|
|
bilibili.pagination.Pagination pagination = 2;
|
|
}
|
|
|
|
// 视频详情页下方推荐 Req
|
|
message RelatesFeedReq {
|
|
//
|
|
int64 aid = 1;
|
|
//
|
|
string bvid = 2;
|
|
//
|
|
string from = 3;
|
|
//
|
|
string spmid = 4;
|
|
//
|
|
string from_spmid = 5;
|
|
//
|
|
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6;
|
|
//
|
|
bilibili.pagination.Pagination pagination = 7;
|
|
//
|
|
string session_id = 8;
|
|
//
|
|
int64 auto_play = 9;
|
|
//
|
|
string from_track_id = 10;
|
|
}
|
|
|
|
//
|
|
message ReplyStyle {
|
|
//
|
|
string badge_url = 1;
|
|
//
|
|
string badge_text = 2;
|
|
//
|
|
int64 badge_type = 3;
|
|
}
|
|
|
|
//
|
|
message ReplyTab {
|
|
//
|
|
ReplyStyle reply_style = 1;
|
|
//
|
|
string title = 2;
|
|
//
|
|
TabControl control = 3;
|
|
}
|
|
|
|
//
|
|
message ReqUser {
|
|
//
|
|
int32 favorite = 1;
|
|
//
|
|
int32 like = 2;
|
|
//
|
|
int32 coin = 3;
|
|
//
|
|
int32 fav_season = 4;
|
|
//
|
|
int32 follow = 5;
|
|
//
|
|
int32 dislike = 6;
|
|
// 头像旁充电按钮
|
|
Button elec_plus_btn = 7;
|
|
//
|
|
ChargingPlus charging_plus = 8;
|
|
}
|
|
|
|
//
|
|
message Rights {
|
|
//
|
|
bool only_vip_download = 1;
|
|
//
|
|
bool no_reprint = 2;
|
|
//
|
|
bool download = 3;
|
|
}
|
|
|
|
//
|
|
message ShowTime {
|
|
//
|
|
int32 start_time = 1;
|
|
//
|
|
int32 end_time = 2;
|
|
//
|
|
double pos_x = 3;
|
|
//
|
|
double pos_y = 4;
|
|
}
|
|
|
|
//
|
|
message SimpleArc {
|
|
//
|
|
int32 copyright = 1;
|
|
}
|
|
|
|
//
|
|
message SimpleReqUser {
|
|
//
|
|
int32 favorite = 1;
|
|
//
|
|
int32 like = 2;
|
|
//
|
|
int32 coin = 3;
|
|
}
|
|
|
|
//
|
|
message StoryEntrance {
|
|
//
|
|
bool arc_play_story = 1;
|
|
//
|
|
string story_icon = 2;
|
|
//
|
|
bool arc_landscape_story = 3;
|
|
//
|
|
string landscape_icon = 4;
|
|
//
|
|
bool play_story = 5;
|
|
}
|
|
|
|
//
|
|
message Tab {
|
|
//
|
|
repeated TabModule tab_module = 1;
|
|
//
|
|
string tab_bg = 2;
|
|
//
|
|
TabControl danmaku_entrance = 3;
|
|
}
|
|
|
|
// 评论区/弹幕 Tab 控制
|
|
message TabControl {
|
|
//
|
|
bool limit = 1;
|
|
//
|
|
bool disable = 2;
|
|
//
|
|
string disable_click_tip = 3;
|
|
}
|
|
|
|
//
|
|
message TabModule {
|
|
//
|
|
TabType tab_type = 1;
|
|
//
|
|
oneof tab {
|
|
//
|
|
IntroductionTab introduction = 2;
|
|
//
|
|
ReplyTab reply = 3;
|
|
//
|
|
bilibili.app.viewunite.common.ActivityTab activity_tab = 4;
|
|
}
|
|
}
|
|
|
|
enum TabType {
|
|
//
|
|
TAB_NONE = 0;
|
|
// 详情 Tab
|
|
TAB_INTRODUCTION = 1;
|
|
// 评论区 Tab
|
|
TAB_REPLY = 2;
|
|
// OGV 活动信息 Tab
|
|
TAB_OGV_ACTIVITY = 3;
|
|
}
|
|
|
|
//
|
|
enum UnionType {
|
|
//
|
|
UGC = 0;
|
|
//
|
|
OGV = 1;
|
|
}
|
|
|
|
// UP主信息(可是Upper这个... 程序员英文不过关吧? )
|
|
message UpperInfos {
|
|
// 粉丝数
|
|
uint64 fans_count = 1;
|
|
// 过去半年内的稿件数
|
|
uint64 arc_count_last_half_year = 2;
|
|
//
|
|
int64 first_up_dates = 3;
|
|
// UP稿件总播放数
|
|
uint64 total_play_count = 4;
|
|
}
|
|
|
|
//
|
|
message VideoGuide {
|
|
//
|
|
repeated Material material = 1;
|
|
//
|
|
VideoViewPoint video_point = 2;
|
|
//
|
|
ContractCard contract_card = 3;
|
|
}
|
|
|
|
//
|
|
message VideoPoint {
|
|
//
|
|
int32 type = 1;
|
|
//
|
|
int64 from = 2;
|
|
//
|
|
int64 to = 3;
|
|
//
|
|
string content = 4;
|
|
//
|
|
string cover = 5;
|
|
//
|
|
string logo_url = 6;
|
|
}
|
|
|
|
//
|
|
message VideoShot {
|
|
//
|
|
string pv_data = 1;
|
|
//
|
|
int32 img_x_len = 2;
|
|
//
|
|
int32 imd_x_size = 3;
|
|
//
|
|
int32 img_y_len = 4;
|
|
//
|
|
int32 img_y_size = 5;
|
|
//
|
|
repeated string image = 6;
|
|
}
|
|
|
|
//
|
|
message VideoViewPoint {
|
|
//
|
|
repeated VideoPoint points = 1;
|
|
//
|
|
PointMaterial point_material = 2;
|
|
//
|
|
bool point_permanent = 3;
|
|
}
|
|
|
|
//
|
|
message ViewBase {
|
|
//
|
|
BizType biz_type = 1;
|
|
//
|
|
PageType page_type = 2;
|
|
//
|
|
PageControl control = 3;
|
|
//
|
|
ActivityResource activity_resource = 4;
|
|
//
|
|
Config config = 5;
|
|
}
|
|
|
|
//
|
|
message ViewProgressReply {
|
|
//
|
|
VideoGuide video_guide = 1;
|
|
//
|
|
Chronos chronos = 2;
|
|
//
|
|
VideoShot arc_shot = 3;
|
|
//
|
|
DmResource dm = 4;
|
|
}
|
|
|
|
//
|
|
message ViewProgressReq {
|
|
//
|
|
uint64 aid = 1;
|
|
//
|
|
uint64 cid = 2;
|
|
//
|
|
uint64 up_mid = 3;
|
|
//
|
|
ChronosParam chronos_param = 4;
|
|
//
|
|
UnionType type = 5;
|
|
}
|
|
|
|
//
|
|
message ViewReply {
|
|
//
|
|
ViewBase view_base = 1;
|
|
//
|
|
Arc arc = 2;
|
|
//
|
|
ReqUser req_user = 3;
|
|
//
|
|
bilibili.app.viewunite.common.Owner owner = 4;
|
|
//
|
|
Tab tab = 5;
|
|
//
|
|
google.protobuf.Any supplement = 6;
|
|
//
|
|
CM cm = 7;
|
|
//
|
|
ECode ecode = 8;
|
|
//
|
|
ECodeConfig ecode_config = 9;
|
|
//
|
|
map<string, string> report = 10;
|
|
}
|
|
|
|
//
|
|
message ViewReq {
|
|
//
|
|
uint64 aid = 1;
|
|
//
|
|
string bvid = 2;
|
|
//
|
|
string from = 3;
|
|
//
|
|
string spmid = 4;
|
|
//
|
|
string from_spmid = 5;
|
|
//
|
|
string session_id = 6;
|
|
//
|
|
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 7;
|
|
//
|
|
string track_id = 8;
|
|
//
|
|
map<string, string> extra_content = 9;
|
|
//
|
|
string play_mode = 10;
|
|
//
|
|
Relate relate = 11;
|
|
//
|
|
string biz_extra = 12;
|
|
//
|
|
string ad_extra = 13;
|
|
}
|