bilibili-API-collect/grpc_api/bilibili/app/viewunite/v1/viewunite.proto
2023-09-01 18:49:13 +08:00

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;
}